【发布时间】:2012-03-04 00:55:38
【问题描述】:
我花了很长时间处理布局问题和屏幕尺寸。我在这里通读了 Android 文档,这很有帮助,而且很有意义: http://developer.android.com/guide/practices/screens_support.html
所以,现在我的应用在不同的屏幕尺寸上显示完全相同的尺寸,因为我的所有元素都使用 DIP(与密度无关的像素)。
但是,我面前有两台设备,一台比另一台大,所以这意味着较大屏幕尺寸 (Sensation XE) 底部的一些空白空间比稍小屏幕尺寸 (Desire Z) 上的空间.
阅读 Android 文档,一般的解决方案是为具有不同 DIP 数量的 xlarge、large、normal 和 small 屏幕尺寸创建布局。
这很好,但是我的布局非常复杂(很多自定义视图、很多按钮、3 个文本视图、很多分开的图像,所以它们可以点亮),重新创建需要做很多工作那些布局。
然而,如果它被拉伸,布局就可以了。如果它采用 Desire Z 上的外观,并且实际上只是拉伸了所有内容以适应更大的屏幕,那很好,因为在这里拉伸应该不是什么大问题。
我的问题是,有没有办法做到这一点而不必重新创建布局 4 次? 是的,我意识到我可以复制粘贴其中的大部分内容,但仅拉伸我拥有的内容会非常方便。
我在平板设备上进行了测试,它显示良好,但一切都很小,并没有填满屏幕。我在不同的文件夹中有不同大小的图像(从 xhdpi 到 ldpi),所以选择正确的图像应该不是问题。
谢谢,非常感谢任何帮助。
【问题讨论】:
-
是的,一般来说,您可以在某些小部件上使用 android:layout_width 和/或 android:layout_height 的 fill_parent 来拉伸内容以适应您的布局。您还可以通过为 LinearLayout 中的一系列小部件适当设置 layout_weight 来按比例缩放。怎么做真的只取决于你想做什么,而且很难抽象地回答。如果你有一个例子和一个关于如何做某事的问题,那可能更容易回答。
-
谢谢布赖恩。我了解 fill_parent 和 layout_width / height,但我尝试使用的布局是相对布局,其中没有一个元素可以真正使用权重或 fill_parent。恐怕我不能真正发布代码,因为它是大学项目的一部分,所以这是我需要自己做的事情,但只需要指出正确的方向。我认为您的评论实际上回答了使用fill_parent 或layout_width/height 的问题,但是对于相对布局,我认为这是不可能的。我想我必须制作 4 个 xml 文档。
-
@BrianCooley,除非有其他方式,请随时发布作为答案,我会接受。它相信它是正确的。
-
当然,您可以在RelativeLayout 中使用fill_parent。请参阅下面发布的示例。
标签: android android-layout screen-size