在Android中常见的换算涉及的单位有:dp、px、dip、
一、各个量的概念
1.像素:px
1.分辨率:
手机屏幕横纵方向上的像素点
比如:480X800,320X480。
2.屏幕尺寸:
屏幕对角线的长度,单位为:寸。
3.dpi--像素密度:每英寸像素数
计算方法:(4寸 480X800)
dpi=(480平方+800平方)根方/4
4. dp(每英寸像素数)
dp
就是 dip
5. density (屏幕密度)
计算方法:density=dpi/(160dpi/英寸)。
图片来自网络
ldpi : mdpi : hdpi : xhdpi : xxhdpi = 0.75 : 1 : 1.5 : 2 : 3
二、单位之间的换算
1.dp与px
dp=(dpi/160像素/英寸)px=density*px
三、解疑
为什么我们在布局文件中最好使用dip/dp,而不要使用px?
原因:由于手机的屏幕尺寸和分辨率不同,导致手机的屏幕密度dip(dp)不同,所以如果我们使用px作为布局文件中的单位时,根据px与dp之间的换算关系:
dp=(dpi/160)*px
- 在屏幕密度为
160dpi(320*480)
的设备上表现为:2px=2dp/(dpi/160)=2dp/(160/160)=2dp
即:为2px的尺寸在160dpi的设备上显示的为2dp, - 在
320dpi(720*1080)
的设备上的表现为:
2px=2dp/(dpi/160)=2dp/(320/160)=1dp
即:为2px的尺寸在320dpi的设备上显示的为1dp。
由于1px为在每个设备上的宽度相等(单位尺寸上的像素数),所以2px在320dp设备上的大小为160dp设备上大小的1/2。而使用dp则不会发生这样的情况,只是像素点数不同,但表现在设备上的大小相同。
具体表现为
以一个长度为