針對不同的類型的物件,有不同的測量單位。以下列出各種單位並說明彼此的關聯。
像素(px)
螢幕的基本單位,其他單位皆為像素的延伸定義。
螢幕像素密度(dpi)
代表一英吋(inch)中含有多少基本像素,解析度越高的螢幕,則一英吋的像素含量越高。
螢幕像素密度(dpi) = 螢幕寬或高(px)/ 螢幕寬或高(inch)
各螢幕像素密度對應到螢幕解析度如下表:
| 螢幕像素密度 | 螢幕解析度 |
| – | – | – |
| 160 | mdpi |
| 240 | hdpi |
| 320 | xhdpi |
| 480 | xxhdpi |
| 640 | xxxhdpi |
像素比例(Pixel ratio)
不同解析度下,相同長度所佔的像素數量比例:
螢幕解析度 | 倍數 |
---|---|
mdpi | 1.0 |
hdpi | 1.5 |
xhdpi | 2.0 |
xxhdpi | 3.0 |
xxxhdpi | 4.0 |
以最低螢幕像素密度(mdpi)為基準向上延伸
像素比例計算公式:
像素比例(Pixel ratio) = 當前螢幕像素密度(dpi)/ 160
密度獨立像素(dp)
專用於手機的抽象單位,統一一個物件在各種螢幕上的大小數值,所以會因螢幕像素密度的不同代表不同數量的像素。
舉例如下表:
螢幕像素密度 | 螢幕寬(像素) | 密度獨立像素 |
---|---|---|
120 | 180 px | 240 dp |
160 | 240 px | 240 dp |
240 | 360 px | 240 dp |
如果三個螢幕同寬,但不同的螢幕像素密度,則相同的密度獨立像素會被轉換成不同數量的像素
轉換成像素的公式:
螢幕寬度(px)= 密度獨立像素(dp) * 像素比例(pixel ratio)
字體單位(sp)
專屬於手機的字體單位,在功能上與密度獨立像素類似,唯一不同的是使用者可以在設定中決定字體大小的基準值。
轉換成像素的公式:
像素(px) = 字體單位(sp)* 像素比例(pixel ratio)
單位對照表
各單位的關係可總和成下表:
| 螢幕解析度 | 螢幕像素密度 | 倍數 | 物件像素大小| 字體像素大小
| – | – | – | – | – | – |
| mdpi | 160 | 1.0 | 100 x 100 | 20 |
| hdpi | 240 | 1.5 | 150 x 150 | 30 |
| xhdpi | 320 | 2.0 | 200 x 200 | 40 |
| xxhdpi | 480 | 3.0 | 300 x 300 | 60 |
| xxxhdpi | 640 | 4.0 | 400 x 400 | 80 |
如取到的設備不知各項數值為何,如Nexus 5X,可透過以下順序推算:
- 取得寬度為2.5英吋和1080像素
- 取得像素密度(dpi) = 1080 / 2.5 = 432
- 取得像素比例(Pixel ratio) = 432 / 160 = 2.7
- 取得寬度的密度獨立像素值(dp) = 1080 / 2.7 = 400
最後的值還是可能會與硬體上的設計,造成官方公佈的數值和理論值有些出入。