我试过:
values-mpdi, values-land-mpdi, values-hpdi and values-land-hdpi
这在手机屏幕上工作正常,问题是 7"平板电脑和 10"平板电脑也可能从 values-mdpi 获取值,但结果不一样,我猜是因为屏幕大小(虽然是相同的分辨率和相似的密度) 所以我尝试了:
values-sw600dp-hdpi
values-sw600dp-port-hdpi
values-sw600dp-mdpi
values-sw600dp-port-mdpi
values-sw720dp-hdpi
values-sw720dp-port-hdpi
values-sw720dp-mdpi
values-sw720dp-port-mdpi
但是应用程序崩溃了,因为它没有找到所需的资源....
任何帮助将不胜感激
提前致谢
最佳答案
基本上,Android 应用程序需要支持三种主要设备类别:
- 手机(电话)
- 小型平板电脑(7″ 类)
- 大平板电脑(10 英寸及以上)。
Android 3.2 之前的限定符:
Google 第一次尝试创建限定符以按设备分隔资源是创建一些大小的桶:小、正常、大、超大。最初,这很有效,因为手机设备属于小型/普通类别,市场上第一个 7″ 平板电脑 是大的,而第一个 10″平板电脑超大。
Android 3.2 及以上版本的限定符:
然而,随着越来越多的设备开始出现在市场上,并配备新的屏幕尺寸,关于设备可能出现在何处的界线开始变得模糊。 在 Android 3.2 中提出了一个新的解决方案,以新限定符的形式根据设备的当前宽度/高度或“最小”来选择资源宽度;后者是设备尺寸的新名称,用屏幕最短边的宽度(密度无关像素或 dp)表示。
使用新范例,通常将小型平板电脑定义为最小宽度为 600dp,将大型平板电脑定义为最小宽度 720dp,手机是低于该线的所有设备。
当最低支持度低于 3.2 且目标高于或等于 3.2 时使用限定符 对于至少以 Android 3.2 或更高版本为目标的应用程序,这个新系统运行良好。但是,如果希望创建在手机和平板电脑上通用的应用程序的开发人员被迫支持不高于 2.2 或最多 2.3 的最低 Android 版本,那么在这种情况下,在具有旧大小的目录中创建每个资源的副本限定符并将其放置在具有相应最小宽度限定符的另一个目录中。
例如在 values-large
和 values-sw600dp
中保留相同的 dimens.xml
文件。所以Android 3.2以下的设备会从values-large
取值,Android 3.2以上的设备会从values-sw600dp
取值>
关于android - 7"and 10"平板电脑的值文件夹中的 dimens.xml,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10642179/