一绍撞、簡介
首先要說的是正勒,Android的碎片化的問題非常嚴重。因為 Android 廠商非常多傻铣,設備非常多章贞,產生了各種各樣的分辨率。
為了解決碎片化的問題矾柜,Android 開發(fā)文檔中定義了 dp阱驾,sp 等新的單位
二、屏幕的基本知識
mm:
millmeters
毫米怪蔑,長度單位in:
inches
英寸里覆,長度單位,屏幕物理尺寸的基本單位pt:
points
一個標準單位缆瓣,大小為一英寸屏幕大小的1/72dpi:
dots per inch
喧枷,即像素密度,每英寸屏幕的像素點
舉個栗子:
假設有一個QVGA(320x480)分辨率的屏幕物理尺寸是2英寸*1.5英寸,則這部手機的dpi=160
Screen Size指的是手機實際的物理尺寸隧甚,如iPhone4S是3.5英寸车荔,這里的3.5英寸指的是手機屏幕對角線的長度為3.5英寸。
三戚扳、屏幕分辨率
分辨率(Resolution)指的是設備屏幕橫向和縱向的像素個數(shù)忧便,常見的有
|分類|分辨率|
|:---:|:---:|
|QVGA|240x320|
|HVGA|320x480|
|WVGA|480x800|
|QWVGA|240x400|
|720P|1280x720|
|1080|1920x1080|
|2K|2560x1440|
四、px, dp, dip, sp之間的區(qū)別
px:
pixel
帽借,即像素珠增,1px
代表屏幕上的一個物理的像素點。但px單位不被建議使用砍艾。由于分辨率不同蒂教,同樣像素大小的圖片在不同手機顯示的實際大小可能不同。要用到px的情況是需要畫1像素表格線或陰影線的時候脆荷,如果用其他單位畫則會顯得模糊凝垛。dip (dp):
device independent pixel
。dp (dip)是最常用也是最難理解的尺寸單位蜓谋。與像素密度密切相關梦皮。Android系統(tǒng)定義了四種像素密度:
類型 | dpi | density |
---|---|---|
ldpi | 120 | 0.75 |
mdpi | 160 | 1.0 |
hdpi | 240 | 1.5 |
xhdpi | 320 | 2.0 |
其中
density
表示對應的dp到px的系數(shù),這個系數(shù)乘以dp長度就是像素數(shù)桃焕。例如界面上有一個長度為“80dp”的圖片届氢,那么它在240dpi的手機上實際顯示為80x1.5=120px,在320dpi的手機上實際顯示為80x2=160px覆旭。如果你拿這兩部手機放在一起對比,會發(fā)現(xiàn)這個圖片的物理尺寸“差不多”岖妄,這就是使用dp作為單位的效果型将。
- sp:
Scale-independent Pixel
,即與縮放無關的抽象像素荐虐。sp和dp很類似但唯一的區(qū)別是七兜,Android系統(tǒng)允許用戶自定義文字尺寸大小(小福扬、正常腕铸、大、超大等等)铛碑,當文字尺寸是“正澈莨”時,1sp=1dp=0.00625英寸汽烦,而當文字尺寸是“大”或“超大”時涛菠,1sp>1dp=0.00625英寸。類似我們在windows里調整字體尺寸以后的效果——窗口大小不變,只有文字大小改變俗冻。