px和dip的区别与转换公式

到底px和dip有什么区别呢?


dip != px


主要是针对不同设备而言的。在Density是160的设备上,比如用AVDManager创建的默认模拟器,dip和 px是一样的但是如果同样的代码,换到不同Density的设备上,比如换到一个Density是240的设备上,dip和px体现出来的大小就不一样 了。px不管在什么样的设备上都是那样长,但是dip会根据设备变化;WQVGA屏density=120;QVGA屏density=120;HVGA屏density=160;WVGA屏density=240;density值表示每英寸有多少个显示点,与分辨率是两个概念。

当屏幕density=240时使用hdpi标签的资源
当屏幕density=160时,使用mdpi标签的资源
当屏幕density=120时,使用ldpi标签的资源。

不加任何标签的资源是各种分辨率情况下共用的。布局时尽量使用单位dip,少使用px。

换算公式为:
pixs =dips * (densityDpi/160).

dips=(pixs*160)/densityDpi

原文地址:https://www.cnblogs.com/yeagen/p/2036219.html