【发布时间】:2014-08-07 01:18:04
【问题描述】:
如果我同时拥有 values-xhdpi 和 values-large 资源,galaxy note II 可以使用哪个资源?我没有用于测试的设备,模拟器只能带我到此为止。
有什么想法吗?
【问题讨论】:
-
把两个文件夹中的值都放到log-cat中打印出来。我还没测试过。
如果我同时拥有 values-xhdpi 和 values-large 资源,galaxy note II 可以使用哪个资源?我没有用于测试的设备,模拟器只能带我到此为止。
有什么想法吗?
【问题讨论】:
根据precedence table,large 在xhdpi 之前,因此values-large 的值将在实际设备上使用。
这里有一个重要说明,如果设备实际上声明自己具有大屏幕,就会发生这种情况。但是,设备对此并不是很一致,因此我会考虑将资源添加到 sw600dp 之类的文件夹中,因为它更可靠。有关更多详细信息,请阅读上面的链接,并在 best practices 中查看如何使用它们。
【讨论】:
sw600dp 这样的限定符,这并不意味着该应用程序不会在Android 3.2 之前的任何设备上运行(阅读:在2.3 上),它只是不会运行能够使用这些资源。但 Android 2.3 无论如何都不支持平板电脑,因此您不必担心早期版本的屏幕尺寸。
这是一个限定符优先级表:
http://developer.android.com/guide/topics/resources/providing-resources.html#table2
Android 支持多个配置限定符,您可以将多个限定符添加到一个目录名称,方法是用破折号分隔每个限定符。表 2 按优先顺序列出了有效的配置限定符 - 如果您对资源目录使用多个限定符,则必须按照它们在表中列出的顺序将它们添加到目录名称中。
阅读这部分:
http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch
它会先在-large 中找到它,然后忽略-xhdpi 一个,所以看起来-large 优先于-xhdpi
【讨论】:
我注意到,对于 Galaxy S3 和 S4
values-sw360dp
有效。
【讨论】: