例如,我在 ldpi , mdpi 和 xhdpi 文件夹中提供了一些图片。
当我在具有 hdpi 密度的设备上运行应用时,会选择哪种资源 - ldpi 或 mdpi ?
答案 0 :(得分:3)
取自http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch
如果没有匹配的资源可用,系统将使用默认值 资源并根据需要向上或向下扩展以匹配当前 屏幕大小和密度“默认”资源是那些不是 用配置限定符标记。例如,资源中 drawable /是默认的可绘制资源。系统假设 默认资源是针对基线屏幕大小而设计的 密度,这是正常的屏幕尺寸和中等密度。因此, 系统将默认密度资源扩展为高密度 适当时,屏幕和向下用于低密度屏幕。然而, 当系统正在寻找密度特定的资源时 没有在密度特定的目录中找到它,它不会总是使用 默认资源。系统可以改为使用另一个系统中的一个 密度特定的资源,以便在何时提供更好的结果 缩放。例如,在寻找低密度资源时 不可用,系统更喜欢缩小高密度 资源的版本,因为系统可以轻松扩展 高密度资源低至低密度0.5倍 与通过a缩放中密度资源相比,更少的工件 因子0.75。
答案 1 :(得分:2)
在这种情况下,android选择** mdpi *。 您可以阅读有关How Android Finds the Best-matching Resource
的更多信息答案 2 :(得分:1)
考虑MDPI为1.然后,LDPI为0.75,HDPI为1.5。这意味着,如果您在MDPI屏幕上有一个可绘制的,例如50x50,则在LDPI屏幕上必须为~37x37,在HDPI屏幕上为75x75。
如果您没有为每个密度提供特殊的drawable,Android将自动缩放最接近的一个。
您不应该将设备的DPI与屏幕尺寸和/或像素数和/或分辨率和/或宽高比有任何关系。设备可能非常小并且具有HDPI屏幕或非常大且具有LDPI屏幕
ldpi用于低密度(ldpi)屏幕的资源(~120dpi)。 mdpi用于中密度(mdpi)屏幕的资源(~160dpi)。 (这是 基线密度。)hdpi用于高密度(hdpi)屏幕的资源 (〜240dpi)。 xhdpi用于超高密度(xhdpi)屏幕的资源 (〜320dpi)。 xxhdpi额外高密度资源(xxhdpi) 屏幕(~480dpi)。 xxxhdpi资源 额外超高密度(xxxhdpi)使用(~640dpi)。用它来做 仅限启动器图标,请参阅上面的注释。
请检查http://developer.android.com/guide/practices/screens_support.html并回答https://stackoverflow.com/a/6373533/2826147