12.4 资源目录的优先级

如果有多个资源目录都符合当前手机的配置环境,那系统该做出怎样的选择呢?就像数学运算:1 + 2 * 3,应该等于9,还是等于7呢?当然,这个表达式毫无疑问等于7,之所以这么肯定,是因为乘法优先于加法计算。这在数学上被称为运算符优先级。然而,在资源目录中也有类似的优先级,表12-1就是一个优先级列表。例如,第1行的MCC资源标识符的优先级就大于第2行的语言和地区标识符的优先级。现在看看下面的3个图像资源目录。

res/drawable:默认的图像资源目录。

res/drawable-port-hdpi:纵向高密度屏幕。

res/drawable-zh:中文语言环境。

如果当前手机的语言环境是中文,系统会选择res/drawable-zh目录中的资源,即使当前手机的屏幕方向是垂直的,并且是高密度屏幕。这是因为屏幕方向标识符和屏幕密度标识符的优先级都低于语言和地区标识符的优先级。