【发布时间】:2013-10-02 21:42:36
【问题描述】:
我正在实现一个应用程序,我想支持所有屏幕尺寸。我有 4 个布局文件夹:layout、layout-small、layout-large 和 layout-xlarge。
哪种屏幕尺寸支持标准布局文件夹?甚至有必要吗?
【问题讨论】:
-
布局文件夹与屏幕大小无关。仅屏幕 DENSITY。
我正在实现一个应用程序,我想支持所有屏幕尺寸。我有 4 个布局文件夹:layout、layout-small、layout-large 和 layout-xlarge。
哪种屏幕尺寸支持标准布局文件夹?甚至有必要吗?
【问题讨论】:
哪种屏幕尺寸支持标准布局文件夹?
在您的情况下,这取决于目录中的文件。
假设您在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/。对于-xlarge 设备,Android 仍将使用main.xml 的layout-xlarge/ 副本。但是,所有其他设备将使用layout-small/,并且main.xml 的layout/ 副本将被忽略。 Android 不会尝试从较大尺寸缩小布局(例如,-normal 设备上的 -xlarge 布局),但会尝试从较小尺寸扩展布局(例如,@ 上的 -small 布局) 987654343@设备)。
我倾向于将layout/ 用于:
-normal 设备上使用的布局(因为我很少支持-small)然后,我使用 layout-large/、layout-xlarge/ 或它们的 Android 3.1+ 替代品(例如,layout-w720dp/)将布局用于更大的屏幕尺寸。
不过,这只是我的特殊风格,欢迎您在上述使用规则范围内为所欲为。
【讨论】:
使用现代符号是更好的解决方案:
/layout // for phones
/layout-sw600dp // for 7 inch tablets
/layout-sw720dp // for 10 inch tablets
【讨论】:
流行:
Mdpi 屏幕智能手机便宜 hdpi屏幕智能手机很贵。
如果您仅使用 mdpi 文件夹布局,则此布局将用于所有屏幕
传说:
layout-small = ldpi
layout = mdpi
layout-large = hdpi
layout-xlarge = xhdpi
【讨论】: