Android 多屏适配

参考资料

  • Supporting Multiple Screens

A set of six generalized densities:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi

  • Supporting Different Densities

要生成这些图片,您应先提取矢量格式的原始资源,然后根据以下尺寸范围针对各密度生成相应的图片。

xhdpi : 2.0
hdpi : 1.5
mdpi : 1.0(最低要求)
ldpi : 0.75

也就是说,如果您为 xhdpi
设备生成了 200x200 尺寸的图片,就应该使用同一资源为 hdpi、mdpi 和 ldpi 设备分别生成 150x150、100x100 和 75x75 尺寸的图片。
然后,将生成的图片文件放在 res/ 下的相应子目录中(如下所示),系统就会根据运行您应用的设备的屏幕密度自动选择合适的图片:

MyProject/
res/
drawable-xhdpi/awesomeimage.png
drawable-hdpi/awesomeimage.png
drawable-mdpi/awesomeimage.png
drawable-ldpi/awesomeimage.png

这样一来,无论您何时引用 @drawable/awesomeimage,系统都能根据相应屏幕的 dpi 选取合适的位图。

用表格来看:

ldpi mdpi tvdpi hdpi xhdpi xxhdpi xxxhdpi
0.75 1 1.33 1.5 2 3 4

一个例子

Samsung Galaxy Note 8.0 的屏幕数据

203.1 mm (8") WXGA (1280 x 800, 189ppi) TFT

由以上数据可计算验证其 dpi 为 189。
因为 189dpi 小于 200dpi,属 mdpi,所以 1dp = 1px。

ANDROID DP/PX CONVERTER

这个工具太好用了!
这个工具太好用了!
这个工具太好用了!

你可能感兴趣的:(Android 多屏适配)