在 Android 中使用 Drawable 目录下图片时,会根据当前设备 DPI 匹配最接近的 Drawable DPI 目录,并在其中拿到图片使用。比如当前设备 DPI 为 300,那么它会优先拿 drawable-xhdpi 目录下图片,如果该目录下没有对应图片,则会去目标 DPI 更高的目录中寻找,即 xxhdpi、xxxhdpi 里的图片,如果在 DPI 更高的目录中还没能拿到图片,那么这时会去最接近的目标 DPI 更低的目录中寻找,即 hdpi、mdpi 等目录。
各 Drawable 目录的目标 DPI 如下: 各 Drawable 目录的目标 DPI拿到图片后会使用当前设备 DPI 除以图片目录下的目标 DPI 的值进行缩放。例如当前设备 DPI 为 420,如果拿到了放在 xxhdpi(目标 DPI 为 480)目录下的图片,则缩放值为 420/480=0.875,那么之后便会拿 0.875 乘当前图片分辨率进行缩小并显示。如果拿到了放在 xhdpi 目录(320 DPI)下的图片,则缩放值为 420/320=1.3125,则之后会拿 1.3125 乘图片分辨率放大并显示。但是要注意,如果图片放大后超过屏幕分辨率,则只会使用屏幕分辨率显示。
网友评论