原文地址: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