在我的res
文件夹中的应用程序中,有不同设备的值文件夹。例如:
值-mdpi
值-hdpi
值-v14
值-v17 值
-w480
值-w720
等等
我想知道这些文件夹对于 Android 的优先级是什么?
让我们想象几个设备:
first : 480*800 hdpi v14
second: 320*480 mdpi v17
third : 720*1280 hdpi v17
Android 会为他们每个人使用哪个文件夹?
您可以在此页面中找到资源文件夹的优先级。基本上它用于支持不同的设备和配置。
Android 使用某种逻辑来确定设备的最佳匹配资源文件夹。本文档页面对此进行了说明。
关于您的设备查询:
在您提供的列表中,values-w480 (devices with lowest width of 480dp, only from API 13)
获得了最高的功劳。因此,无论哪个设备符合该标准,它都会从该文件夹中获取资源。
values-vXX (devices with API >= XX)
获得了最低的优点。所以如果其他文件夹没有被占用,那么只有Android会从这个文件夹中获取资源。查看列出资源限定符的表格以获取有关该主题的更多信息。资源限定符在表中按资源限定符的优先顺序列出。
这是 Android 文档所述:
请注意,当 Android 系统选择在运行时使用哪些资源时,它会使用某些逻辑来确定“最佳匹配”资源。也就是说,您使用的限定符不必在所有情况下都与当前屏幕配置完全匹配,系统才能使用它们。具体来说,在根据尺寸限定符选择资源时,如果没有更好匹配的资源,系统将使用为小于当前屏幕的屏幕设计的资源(例如,如果大屏幕将使用普通屏幕资源,如果必要的)。但是,如果唯一可用的资源大于当前屏幕,系统将不会使用它们,并且如果没有其他资源与设备配置匹配,您的应用程序将崩溃(例如,如果所有布局资源都用 xlarge 限定符标记,但设备是正常大小的屏幕)。有关系统如何选择资源的更多信息,请阅读 Android 如何找到最佳匹配资源。