图解android开发中dp和px的区别

2025-04-02 20:50:39
推荐回答(1个)
回答1:

px: pixels(像素),不同的设备不同的显示屏显示效果是相同的,这是绝对像素,是多少就永远是多少不会改变。

dp也是dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用此单位。

    这里要特别注意dip与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正确,有可能导致dip不能正常显示。在屏幕密度为160的显示屏上,1dip=1px,有时候可能你的屏幕分辨率很大如480*800,但是屏幕密度没有正确设置比如说还是160,那么这个时候凡是使用dip的都会显示异常,基本都是显示过小。

     dip的换算:

           dip(value)=(int) (px(value)/1.5 + 0.5)


举例看来看看,首先在界面上布局两个button,设置两个两个button离左边的举例一个是50dp,一个是50px。

用480*800的模拟器来运行。发现这两个按钮离左边屏幕的距离没有差别。


再用270*320的模拟器来运行,发现上面的按钮离左边屏幕的距离更近了。

如果用尺子来量,我们能发现px是固定的,距离没有变,而dp则改变了。这样就能看出它们的差别了。