我有一个hdpi
设备。
DPI:hdpi,密度:1.5,密度Dpi:240,sw:320
values
和values-xxhdpi
文件夹。
为什么Android从dimes
提取values-xxhdpi
而不从values
提取>
我认为应该从一个较小的文件夹中取出它。 默认值是mdpi,hdpi也可以是mdpi,然后是xxhdpi。
能不能告诉我我要去哪里错了?
答案 0 :(得分:2)
对密度的处理与其他资源集约束不同。
Android密度资源集约束旨在与drawable
和mipmap
一起使用。对于这些资源,Android可以通过对图像进行上采样或下采样来自动将资源从一种密度转换为另一种密度。其他资源集约束则不是这种情况。例如,Android无法自动将英语字符串资源转换为中文。
在寻找兼容资源时,如果您使用密度作为类型的约束(例如values
),则Android的行为似乎可以将资源从一种密度转换为另一种...甚至对于不可能的资源类型。因此,即使您在除图像之外的其他物体上使用密度限定符,Android仍会使用最接近的密度,无论选择哪种算法来选择要转换的图像。
使用密度作为drawable
或mipmap
以外的任何事物的限定符是一种代码味道。您不太可能得到想要的东西。