我已经阅读了有关Android Resources的文档,我想我已经理解了android使用的最佳匹配逻辑,以确定首先应该在哪个目录中搜索特定资源。假设 drawable -hdpi , drawable-en-port 和drawable-en *匹配当前设备配置, drawable-en-port 是最匹配的目录..我的问题是,如果在 drawable-en-port 中找不到drawable,系统是否直接在 drawable 中查找,或者它是否在第二个最佳匹配 drawable-en 然后在第三个最佳匹配 drawable-hdpi 等等,直到它到达 drawable ?我认为它的工作方式是这样的,但我没有在文档中明确说明(除非我读得太快,你肯定会杀了我:)。
答案 0 :(得分:1)
是的,它首先出现在drawable-en
,然后是drawable-hdpi
,因为语言限定符具有更高的优先级。如果仍未找到值,则会搜索drawable
目录。它符合:
How Android Finds the Best-matching Resource
如果drawable-en
包含匹配的资源,则会根据算法的第4步消除drawable-hdpi
和drawable
。
答案 1 :(得分:1)
我阅读了介绍部分
assume the following drawable directories each contain different versions of the same images
在您的示例中,Android会忽略drawable-en-port文件夹,因为它没有可绘制的名称。它只会查看具有该drawable的文件夹,因此选择最匹配的文件夹。如果没有匹配配置和图像的文件夹,它只会选择'drawable'。