• 验证图片的放大和缩小

在配置为1080×1920 - 420dpi的模拟器上,从网上找一张Android logo图片分别放在drawable-mdpi、drawable-xxhdpi、drawable-xxxhdpi文件夹下,查看图片的显示效果(如下)。从图中可以明显看到图片的放大和缩小,且比设备屏幕密度低的drawable-mdpi目录图片被放大,比设备屏幕密度高的drawable-xxxhdpi目录图片被缩小。

  • 验证缩放倍数

在Sketch里简单绘制一张图,分别导出一倍图(1x)和三倍图(3x),并假设实际标注为一倍图的尺寸。表示如下


在配置为1080×1920 - 420dpi的模拟器上,1倍图和3倍图在wrap_content的情况下,宽高应该符合上表。按照上面对放大倍数的分析,分别把1倍图和3倍图置于drawable-mdpi和drawable-xxhdpi目录下,查看图片宽高。

该模拟器屏幕dpi横纵方向均为420,drawable-mdpi目录最大dpi值为160,drawable-xxhdpi目录最大dpi值为480。通过上述分析的计算公式,可计算图片预期宽高:

  • drawable-mdpi
scale = 420/160
1x:98 × scale = 98 × 420/160 = 257
3x:294 × scale = 294 × 420/160 = 772

  • drawable-xxhdpi
scale = 420/480
1x:98 × scale = 98 × 420/480 = 86
3x:294 × scale = 294 × 420/480 = 257

由于像素没有小数,上述计算结果进行了四舍五入。从结果可以看出,公式计算结果和实际显示效果一致。另一方面,在该dpi下,图片放置于drawable-xxhdpi目录下,图片的显示宽高更接近于图片实际大小。

这部分的验证大家可以自己测试一下,基本规律是没有问题的。