我有一个简单的布局。它是一个包含以下代码的按钮:
<Button
android:layout_width="100dip"
android:layout_height="100dip"
android:text="Y" />
我在两个设备上运行它,一个比另一个小。我注意到按钮大小没有变化。我使用dip时,视图的大小会根据屏幕大小而变化。 我错了还是什么?
答案 0 :(得分:1)
如果您设置了像素,则尺寸会因屏幕密度不同而发生变化。 dp
用于克服这种情况,因此大小是固定的。
如果您希望尺寸与屏幕尺寸成比例变化,我认为您应该在android:weight=
内使用LinearLayout
。即:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="3"
... >
<Button
android:layout_height="100dp"
android:layout_width="0dp"
android:layout_weight="1"
android:text="Button 1" />
<Button
android:layout_height="100dp"
android:layout_width="0dp"
android:layout_weight="2"
android:text="Button 2" />
</LinearLayout>
在这种情况下,Button 1
将始终为LinearLayout
宽度的1/3,而Button 2
将始终为2/3。
看到这个非常受欢迎的question。