安卓 - 标准布局文件夹,对应哪个屏幕尺寸?

3

我正在实现一个应用程序,希望支持所有屏幕尺寸。我有四个布局文件夹:layout,layout-small,layout-large和layout-xlarge。

标准布局文件夹适用于哪种屏幕尺寸?它是否是必需的?

答案是:标准布局文件夹适用于中等屏幕尺寸,但不一定是必需的。如果您希望在各种屏幕大小上都有相似的用户体验,则应该考虑使用不同的布局文件夹。例如,您可以使用layout-small来显示更小的设备,使用layout-large来显示大型平板电脑等。


2
布局文件夹与屏幕大小无关,只与屏幕密度有关。 - nhgrif
3个回答

2
哪个屏幕尺寸支持标准布局文件夹?
在您的情况下,这将取决于文件在哪个目录中。假设您在layout/中有main.xml,并且不在其他三个候选文件夹中。然后,setContentView(R.layout.main)将使用layout/中的副本。
现在,假设您在layout-xlarge/中添加了一个修订版本的main.xml。在xlarge设备上,Android将使用main.xml的layout-xlarge/版本,在其他屏幕尺寸上,Android将使用main.xml的layout/版本。
现在,假设您添加了第三个main.xml版本,这次是在layout-small/中。Android仍将使用main.xml的layout-xlarge/副本用于xlarge设备。但是,所有其他设备都将使用layout-small/,并且将忽略layout/中的main.xml副本。Android不会尝试从较大的尺寸(例如,对于普通设备上的xlarge布局)缩小布局,但它会尝试从较小的尺寸(例如,在普通设备上的小型布局)扩展布局。
我倾向于使用layout/来进行以下操作:
- 不需要针对不同尺寸使用不同版本的布局 - 用于在常规设备上使用的布局(因为我很少支持小型设备)
然后,我使用layout-large/、layout-xlarge/或它们的Android 3.1+替代品(例如layout-w720dp/)来制作用于较大屏幕尺寸的布局。
但是,那只是我特定的风格,您可以根据上述使用规则自由进行操作。

1
使用现代符号是更好的解决方案:
/layout // for phones
/layout-sw600dp // for 7 inch tablets
/layout-sw720dp // for 10 inch tablets

0

通俗地说:

屏幕像素密度为 mdpi 的智能手机价格便宜, 而像素密度为 hdpi 的智能手机价格较贵。

如果您只使用 mdpi 文件夹中的布局,则该布局将用于所有屏幕。

注释:

layout-small = ldpi
layout = mdpi
layout-large = hdpi
layout-xlarge = xhdpi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接