Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 系统如何找到最佳匹配资源?_Android - Fatal编程技术网

Android 系统如何找到最佳匹配资源?

Android 系统如何找到最佳匹配资源?,android,Android,我有一个hdpi设备。 DPI:hdpi,密度:1.5,密度DPI:240,sw:320 值和值xxhdpi文件夹。 为什么Android从values xxhdpi中获取dimes,而不是从values中获取 我想它应该从一个较小的文件夹中取出。 默认值是mdpi,hdpi也是closser到mdpi,然后是xxhdpi 您能告诉我哪里出了问题吗?密度的处理方式不同于其他资源集约束 Android密度资源集约束设计用于drawable和mipmap。对于这些资源,Android可以通过对图像进

我有一个
hdpi
设备。
DPI:hdpi,密度:1.5,密度DPI:240,sw:320

值xxhdpi
文件夹。 为什么Android从
values xxhdpi
中获取
dimes
,而不是从
values
中获取

我想它应该从一个较小的文件夹中取出。 默认值是mdpi,hdpi也是closser到mdpi,然后是xxhdpi


您能告诉我哪里出了问题吗?

密度的处理方式不同于其他资源集约束

Android密度资源集约束设计用于
drawable
mipmap
。对于这些资源,Android可以通过对图像进行上采样或下采样,自动将资源从一种密度转换为另一种密度。对于其他资源集约束,情况并非如此。例如,Android无法自动将英文字符串资源转换为中文

在寻找兼容资源时,如果使用密度作为类型的约束(例如,
),Android的行为就好像可以将资源从一种密度转换为另一种密度一样。。。即使对于资源类型,这是不可能的。因此,安卓正在选择最接近的密度,使用它用于选择要转换的图像的任何算法,即使您在图像以外的其他对象上使用密度限定符


使用密度作为除
drawable
mipmap
之外的任何东西的限定符是一种代码气味。你不可能得到你想要的。

你好,马克,谢谢你的回答。所以我应该使用大的
值-sw600dp
而不是
值xxhdpi
,对吗?@Yvgen:是的。根据大小更改值是安全的;基于密度更改值不太安全。