我提前为问这个问题道歉,我知道类似的问题已经被问了数百次,但尽管我多次阅读了 Android 屏幕支持指南,但我仍然不明白如何创建一个适合多个屏幕的基本布局,而无法使用比例尺寸。
所以基本上,如果我总结一下本指南告诉我们要做的事情:
- 我们应该为希望应用兼容的每个"大小组"和"密度组"设备创建多个布局资源。
- 我们应该使用
RelativeLayout
或FrameLayout
而不是AbsoluteLayout
- 我们应该使用
dp
维度而不是px
维度来摆脱密度差异问题。
还行。这是有道理的。
现在,这是我的问题(我提前为他们的愚蠢道歉):
- 如果我使用
Density Independent Pixels (dp)
维度,为什么必须为不同的density groups
创建不同的布局资源? - 我想为不同的屏幕尺寸使用不同的资源集的要点是,您可能希望应用程序布局在小型和大型设备上看起来不同,而不是具有具有不同尺寸的完全相同的布局,对吗?所以基本上这意味着,如果我只想要一个在所有设备上看起来完全相同的应用程序(只是缩小/扩展以适应屏幕尺寸),我只需要定义一组资源,对吗?
- 如果我想创建一个非常简单的布局,它只包含两个按钮,每个按钮占据屏幕宽度的 50%,我如何通过使用
dp
尺寸来做到这一点?
谢谢,再次抱歉再次讨论这个话题......
您不必创建不同的布局。我主要只使用一种纵向布局和横向模式使用一种布局,将其他所有内容留给系统。
如果您想获得 2 个相同大小的按钮,只需使用
android:layout_width="fill_parent"
android:layout_weight="1"
并将它们放入线性布局容器中。
编辑(完整的代码,将并排给出两个按钮):
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal">
<Button
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/b1" android:onClick="btn1" />
<Button
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/b2" android:onClick="btn2" />
</LinearLayout>