Android资源“最佳匹配”后备逻辑

时间:2012-05-21 12:41:01

标签: android drawable directory-structure android-resources

我已经阅读了有关Android Resources的文档,我想我已经理解了android使用的最佳匹配逻辑,以确定首先应该在哪个目录中搜索特定资源。假设 drawable -hdpi drawable-en-port 和drawable-en *匹配当前设备配置, drawable-en-port 是最匹配的目录..我的问题是,如果在 drawable-en-port 中找不到drawable,系统是否直接在 drawable 中查找,或者它是否在第二个最佳匹配 drawable-en 然后在第三个最佳匹配 drawable-hdpi 等等,直到它到达 drawable ?我认为它的工作方式是这样的,但我没有在文档中明确说明(除非我读得太快,你肯定会杀了我:)。

2 个答案:

答案 0 :(得分:1)

是的,它首先出现在drawable-en,然后是drawable-hdpi,因为语言限定符具有更高的优先级。如果仍未找到值,则会搜索drawable目录。它符合: How Android Finds the Best-matching Resource

如果drawable-en包含匹配的资源,则会根据算法的第4步消除drawable-hdpidrawable

答案 1 :(得分:1)

我阅读了介绍部分

assume the following drawable directories each contain different versions of the same images

在您的示例中,Android会忽略drawable-en-port文件夹,因为它没有可绘制的名称。它只会查看具有该drawable的文件夹,因此选择最匹配的文件夹。如果没有匹配配置和图像的文件夹,它只会选择'drawable'。