Unit

針對不同的類型的物件,有不同的測量單位。以下列出各種單位並說明彼此的關聯。

像素(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

最後的值還是可能會與硬體上的設計,造成官方公佈的數值和理論值有些出入。