适用于多种屏幕大小的Android布局

时间:2011-04-20 07:14:45

标签: android android-layout

我正在开发一款Android应用,我们针对所有屏幕尺寸进行定位?我如何制作布局?我应该为每种类型的屏幕制作不同的layout.xml,还是有其他“有效”的做事方式?

3 个答案:

答案 0 :(得分:6)

阅读Supporting Multiple Screens,特别是“屏幕独立的最佳做法”部分。

基本规则:

  • 在XML布局文件中指定维度时,使用wrap_content,fill_parent或dp单位(而不是px)
  • 请勿使用AbsoluteLayout
  • 请勿在代码中使用硬编码像素值
  • 使用密度和/或分辨率特定资源
  • 实际上,即使您的布局适用于平板电脑,您也需要为这些超大型设备提供不同的布局,以增强用户体验。

关于屏幕截图的修改。

<ImageButton
        android:id="@+id/btnSubmit"
        android:src="@drawable/submit"
        android:layout_height="22dp"
        android:layout_width="85dp"
        android:layout_marginTop="15dp"
        android:layout_below="@+id/confirmpassword"
        android:layout_centerInParent="true" />

您在此指定了两个可能无法很好地协作的垂直约束。而不是layout_centerInParent,尝试layout_centerHorizo​​ntal。

你也可以给RelativeLayout一个gravity =“top | center_horizo​​ntal”。因此,默认情况下,元素在视图中水平居中并粘在顶部。

同时尝试将firstnamebtnSignin对齐,而不是username。你可能很幸运。

RelativeLayout是最复杂的布局。如果你在一段时间后无法正确使用它,你可以简单地决定使用嵌套的LinearLayout组合

答案 1 :(得分:2)

对于横向和纵向模式,您可以使用不同的xmls,因为您需要根据方向显示您的屏幕。我一直在为我的应用程序使用此方法。 对于多屏幕的支持,您可以将相对布局作为父节点。不要采用绝对布局。

答案 2 :(得分:1)

你必须采取相对布局的任何动态屏幕&amp;所有测量都将以百分比(%)或您可以使用属性(填充父级或包装内容),这样做你可以在某种程度上管理不同屏幕的布局