原文地址:http://www.cnblogs.com/yaozhongxiao/archive/2014/07/14/3842908.htmlhtml
dip :device independent pixels(设备独立像素),不一样设备有不一样的显示效果,这个和设备硬件有关。它跟屏幕密度有关,若是屏幕密度大,1dip表明的px就多,好比在320dpi的屏幕上,1dip=2px。
android
dp :就是dip。布局
px : 像素。字体
dpi :dots per inch, 直接来讲就是一英寸多少个像素点。常见取值 120,160,240。我通常称做像素密度, 简称密度spa
density : 直译叫密度。常见取值 1.5 , 1.0 。和标准dpi的比例(160px/inc)。code
分辨率 : 横纵2个方向的像素点的数量,是指屏幕上垂直方向和水平方向上的像素个数。常见取值 480X800 ,320X480。orm
屏幕尺寸: 屏幕对角线的长度。htm
pt : point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,很是简单易用;blog
sp : scaled pixels(放大像素). 主要用于字体显示best for textsize。ip
in :(英寸)长度单位。
metrics.density; metrics.densityDpi;
densityDpi : 就是咱们常说的dpi。
density : 实际上是 DPI / (160像素/英寸) 后获得的值。是否是有点奇怪,由于我带了单位。。。这个涉及到后面一个比较重要的东西,后面再说。
从上面就看得出了,DPI自己的单位也是 像素/英寸,因此density实际上是没单位的,他就是一个比例值。
而dpi的单位是 像素/英寸,比较符合物理上面的密度定义,密度不都是单位度量的值么,因此我更喜欢把dpi叫像素密度,简称密度,density仍是就叫density。
咱们写布局的时候,确定仍是要知道1个dp到底有多少px的。
换算公式以下: dp = (DPI/(160像素/英寸))px = density px
注意,这里都是带单位的。px是单位,dp是单位,density没单位。
为了方便,假设dpi是240 像素/英寸 , 那么density就是1.5
那么就是 dp=1.5px ,注意这是带了单位的,也就是 设备无关像素 = density 像素
那么转换为数值计算的话,应该是下面这个式子
px = density * dp