Android适配方案小结(一)

相关计量单位介绍:
px:是屏幕的像素点,不同设备显示的效果一样。
in:英寸(1英寸等于2.54cm)
mm:毫米
pt:磅, 1/72英寸
dp:device independent pixels(设备独立像素),不同设备有不同的显示效果。这个和设备
硬件有关。

基于density的抽象单位,假设一个160dpi的屏幕,1dp=1px。(160dpi表示1英寸
有160个像素点)
dip:等同于dp。因此我们在xml中使用dp和dip效果一样。
sp:scaled pixels。 同dp相似,但还会依据用户的字体大小偏好缩放。


dpi:dots per inch,每英寸的像素数。
density:通常我们在Android平台提到的这个不是屏幕密度,而是每英寸的像素点与160dpi
(google设置的一个标准)的比值。
densityDpi的值表示每英寸有多少个像素点,单位是dpi。

dip与px的关系:

QVGA    densityDpi = 120Density = 0.75  1dp = 0.75px   ldpi

HVGA densityDpi = 160 Density = 1  1dp = 1px mdpi

VGA densityDpi = 160Density = 1 1dp = 1px   mdpi

WVGA densityDpi = 240Density = 1.5 1dp = 1.5p  xhdpi

WQVGA   densityDpi = 320 Density = 2  1dp = 2px xhdpi


资源目录匹配:

Android默认是使用density来匹配资源的:
当屏幕 density = 2时,使用drawable-xhdpi目录下的资源
当屏幕 density = 1.5时。使用drawble-hdpi目录下的资源
当屏幕 density = 1时。使用drawble-mdpi目录下的资源
当屏幕 density = 0.75时,使用drawable-ldpi目录下的资源。

(尽管Android设备的屏幕像素密度遵循0.75:1.0:1.5:2.0的比例,但市面上有一部分的设备不全然

符合上面的四种情况,有可能介于2者之间:如1.33。这时能够使用drawable-tvdpi目录下的资源。)


原文地址:https://www.cnblogs.com/mengfanrong/p/5075578.html