我come across使用此表显示Android用作屏幕密度的基线:
我理解,如果我的mdpi
图片是100px,那么我必须为hdpi
使用150px(1.5因子)。
问题1: mdpi
是否定位120dpi
屏幕和160dpi
屏幕之间的屏幕密度?由于我的手机有432dpi
(或ppi
)且使用xxhdpi
,因此我认为xxhdpi
会定位320dpi
和480dpi
之间的屏幕密度,正确?
但是这里我came across有不同的表,显示示例:
问题2:根据上述假设,xhdpi
应定位在240dpi-320dpi
之间,但在第二个表中336dpi
也被视为xhdpi
,为什么?如果用户的屏幕密度> 1,会发生什么? 480dpi
我没有xxxhdpi
文件夹?
答案 0 :(得分:2)
Android根据DPI值差异最小的存储桶为给定的DPI值选择合适的密度存储桶。这可以在下面的图像中轻松看到:
引用:
图1. Android如何粗略地将实际尺寸和密度映射到广义尺寸和密度的图示(数字不准确)。
来源:http://developer.android.com/guide/practices/screens_support.html#range
问题1: Mdpi的目标大约是140 DPI和180 DPI之间的任何东西。
问题2: 336 DPI被视为xhdpi,因为xhdpi存储桶是最接近的存储桶(DPI值:6)。与hdpi存储桶的差异为96,与xxhdpi存储桶的差异为144。
当缺少密度文件夹时,Android会选择最佳替代文件夹,如果需要,还会对资源进行缩放以匹配目标密度。