1.概念问题
- 屏幕分辨率 :指在手机屏幕上面的像素点数 比如1920*1080、1080*720
- 屏幕像素密度 (dpi):指每英寸上面的像素点的个数,单位是dpi,计算方式为
(1280*1280 + 1920*1920)开方 / (x*x + y*y)开方
可根据上面的勾股定理计算 - 屏幕无关像素(dp/dip):Android的一个设计单位,是物理单位,跟屏幕像素密度无关,只不过跟像素存在换算关系,160dpi 是系统为 mdpi 屏设定的基准密度,也就是说在mdpi的手机上,
1px = 1英寸/160 = 1dp
,所以dp和px的换算关系为:px = dp * dpi /160
- 对应关系
ldpi -> 120dpi 1dp = 0.75px
mdpi -> 160dpi 1dp = 1px
hdpi -> 240dpi 1dp = 1.5px
xhdpi -> 320dpi 1dp = 2px
xxhdpi -> 480dpi 1dp = 3px (目前这种是主流dpi)
xxxhdpi-> 640dpi 1dp = 4px (市场上很多手机已经是这种dpi了)
备注:假如自己算出来的dpi是443,那么在Android系统中会向上取整,所以会认为你的dpi是480,所属的屏幕为xxhdpi