相关计量单位介绍:
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。
当屏幕 density = 2时,使用drawable-xhdpi文件夹下的资源
当屏幕 density = 1.5时,使用drawble-hdpi文件夹下的资源
当屏幕 density = 1时,使用drawble-mdpi文件夹下的资源
当屏幕 density = 0.75时,使用drawable-ldpi文件夹下的资源。
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 xhdpiWQVGA 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文件夹下的资源。)