Android中dp,sp以及px之間的關係

px:
即像素,1px代表屏幕上一個物理的像素點;
px單位不被建議使用,因爲同樣100px的圖片,在不同手機上顯示的實際大小可能不同。

dp:
這個是最常用但也最難理解的尺寸單位。它與“像素密度”密切相關,所以首先我們解釋一下什麼是像素密度。假設有一部手機,屏幕的物理尺寸爲1.5英寸*2英寸,屏幕分辨率爲240x320,則我們可以計算出在這部手機的屏幕上,每英寸包含的像素點的數量爲240/1.5=160dpi(橫向)或320/2=160dpi(縱向),160dpi就是這部手機的像素密度,像素密度的單位dpi是Dots Per Inch的縮寫,即每英寸像素數量。橫向和縱向的這個值都是相同的,原因是大部分手機屏幕使用正方形的像素點。
dp和px的關係:px = dp * (dpi / 160)
Density-independent pixel (dp)獨立像素密度。標準是160dip.即1dp對應1個pixel,屏幕密度越大,1dp對應的像素點越多。上面的公式中有個dpi,dpi爲DPI是Dots Per Inch(每英寸所打印的點數),也就是當設備的dpi爲160的時候1px=1dp;

sp:
與縮放無關的抽象像素(Scale-independent Pixel)。sp和dp很類似但唯一的區別是,Android系統允許用戶自定義文字尺寸大小(小、正常、大、超大等等),當文字尺寸是“正常”時1sp=1dp=0.00625英寸,而當文字尺寸是“大”或“超大”時,1sp>1dp=0.00625英寸。

最佳實踐:

文字的尺寸一律用sp單位,非文字的尺寸一律使用dp單位。例如textSize="16sp"、layout_width="60dp";偶爾需要使用px單位,例如需要在屏幕上畫一條細的分隔線時。


參考:http://www.cnblogs.com/bjzhanghao/archive/2012/11/06/2757300.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章