標籤:
Android支援下列所有單位:
px(像素):螢幕上的一個點。不同裝置顯示效果相同,一般我們HVGA代表320×480像素,這個用的比較多。
in(英寸):長度單位。
mm(毫米):長度單位。
pt(磅):1/72英寸。是一個標準的長度單位,用於印刷業,非常簡單易用;
dp(dip)(與密度無關的像素):一種基於螢幕密度的抽象單位。與像素沒有關係。在每英寸160點的顯示器上,1dp = 1px。
sp(與刻度無關的像素):主要用於字型顯示。根據 google 的建議,TextView 的字型大小最好使用 sp 做單位,而且查看TextView的源碼可知 Android 預設使用 sp 作為字型大小單位。
dp和sp是android裡特有的,設計師在做UI設計的時候通常最初是建立320*480這個尺寸的畫布開始的,這個尺寸的畫布在android解析度的分類中稱為mdpi,在這個尺寸下,ps裡的1px就等於android中的1dp,同樣,這個時候1點的字就等於android中1sp,例如:你建立畫布的尺寸是320-480,裡面的文字是30點,那麼它就是30sp。
解析度:整個屏是多少點,比如480*800,它是對於軟體來說的顯示單位,以px為單位的點。
density(密度)值表示每英寸有多少個顯示點,與解析度是兩個概念。
apk的資源套件中,
當螢幕density=240時,使用hdpi標籤的資源
當螢幕density=160時,使用mdpi標籤的資源
當螢幕density=120時,使用ldpi標籤的資源。
一般android設定長度和寬度多用dip,設定字型大小多用sp. 在螢幕密度為160,1dp=1px=1dip, 1pt = 160/72 sp 1pt = 1/72 英寸.當螢幕密度為240時,1dp=1dip=1.5px.
舉例說明:
對於一部wvga(480×800)手機(G7、N1、NS),一般是運行在hdpi模式下。當運行在hdpi模式下時,1dp=1.5px:也就是說設計師在PS裡定義一個item高72px,開發就會定義該item高48dp;Photoshop中21px大的字型,開發會定義為14sp。
擴充閱讀:Android介面設計專業術語:xxxhdpi和4K解析度
android的解析度和IOS類似,它有四個像素密度,android提供120DPI(低密度),160DPI(中密度),240DPI(高密度)和320DPI(超高密度),所有使用者介面都是基於四個密度之一的尺寸來設計的。要支援所有4個密度,是很悲劇的。如果一開始是以160DPI來設計,那麼你就需要擴充這些密度到100%、150%和200%。
為了使使用者UI介面能夠在現在和將來的移動端顯示器類型上正常顯示,建議大家始終使用sp作為Android系統上面 文字大小的單位,將dip作為其他元素的單位。
[轉+整理] Android 解析度,密度,像素單位說明