Android 中的单位换算

在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/英寸)。

Android 中的单位换算_第1张图片
图片来自网络

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则不会发生这样的情况,只是像素点数不同,但表现在设备上的大小相同。
具体表现为
以一个长度为

你可能感兴趣的:(Android 中的单位换算)