在android中为了适应不同分辨率的屏幕,引入了密度无关像素density-independent pixes,也就是dip,也可以简写为dp。之所以是与密度无关,是因为android为不同的密度提供了不同的scale值,比如mdpi的值为1,hdpi为1.5,xhdpi为2.这样,如果使用相同的dp值,系统在转换为px时,会使用dp*scale值,这样得到的比例大家都相同,而比例相同了,也就意味着屏幕适配了。如480*800,4.0inch的屏幕,为hdpi。屏幕的一半可以用160dp表示,其px = 160 * 1.5 = 240px,恰好为480的一半。而320*640的 3.5inch的屏幕,为mdpi。屏幕的一半也是160dp,其px = 160 * 1 = 160px,恰好为320的一半。这样dp就实现了不同屏幕的适配。
但是现在xhdpi的屏幕也很普遍,比如720*1280 4.5inch的屏幕,其scale值为2,所以整个屏幕为360dp,这样与hdpi和mdpi就不太相同了,用dp表示比例就有些误差了。不过这种误差也是在可以接受的范围之内。