1,单位
px:是屏幕的像素点
dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px.注:density值表示每英寸有多少个显示点
在运行时, android根据使用中的屏幕的实际密度, 透明地处理任何所需dp单位的缩放.
android官方定义dip等价于160dpi屏幕下的一个物理像素点.(当屏幕为160dpi时的像素点做为一个dp,dpi值/160dpi*1px=1dp)dip :等同于dp
sp :同dp相似,但还会根据用户的字体大小偏好来缩放(建议使用sp作为文本的单位,其它用dip)
2,屏幕密度
- drawable-ldpi: 屏幕密度ppi为120的手机设备
- drawable-mdpi: 屏幕密度ppi为160的手机设备(此为baseline,其他均以此为基准,在此设备上,1dp = 1px)
- drawable-hdpi: 屏幕密度ppi为240的手机设备
- drawable-xhdpi: 屏幕密度ppi为320的手机设备
- drawable-xxhdpi: 屏幕密度ppi为480的手机设备
3,单位换算
- dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。
- drawable-ldpi: 分辨率240×320 比例:0.75 1dp =0.75px
- drawable-mdpi: 分辨率320×480 比例:1 1dp =1px
- drawable-hdpi: 480×800或480×854 比例:1.5 1dp =1.5px
- drawable-xhdpi: 分辨率720×1280 比例:2 1dp =2px
- drawable-xxhdpi: 分辨率1920*1080 比例:3 1dp =3px
4,dp与px换算公式:
- pixs =dips * (densityDpi/160).
- dips=(pixs*160)/densityDpi