参考资料
http://www.zhihu.com/question/21220154/answer/18584739
http://mp.weixin.qq.com/s?__biz=MjM5NTA0NjY4MA==&mid=203073243&idx=1&sn=c71ff9f0c0fb96fea2d3ea2b213018e1#rd
概念解释
dpi是dot per inch,每平方英寸多少点,印刷品点密度
ppi是 Pixel per inch,每平方英寸像素数,设备的像素密度
px是像素,只针对显示器
dp,dip,sp是android使用的单位,为了匹配不同屏幕的手机,不能指定px大小(我理解为绝对大小)。
换算公式
屏幕分辨率为X × Y
ppi = √ (X^2 + Y^2) / 屏幕尺寸(inch)
对显示器而言,dpi=ppi
标准定义下。dpi/ppi为160的情况下,dp,dip,px为同一个计量单位。
除此之外:
dip 和 dp是同一个计量单位,即dip = dp。
dp 和 px 转换的时候有一个重要的参数。
伸缩密度:scaledDensity。具体的转换公式为
px = dp × scaledDensity
scaledDensity = ppi / 160
sp与px的换算方法和dp一致,主要用来表示字体,常用大小有12,14,16,18
查看更过
读取屏幕参数的方法
举例:
HVGA屏320*480,一般是3.5寸,ppi为√ (320^2 + 480^2) / 3.5 = 164,约等于160,1pd=1pxWVGA屏480*800,按3.8寸屏算,ppi √ (480^2 + 800^2) / 3.8 = 245,约等于240,1dp=1.5px。