Android 中的单位换算

作者: GYLEE | 来源:发表于2016-10-23 17:40 被阅读145次

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

    相关文章

      网友评论

        本文标题:Android 中的单位换算

        本文链接:https://www.haomeiwen.com/subject/dhklyttx.html