密度獨立像素 (dp) 和可縮放像素 (sp) 是建構版面配置和顯示字型的必要元素,可讓這些元素一致地回應 Android 裝置的各種螢幕密度、大小類別、板型規格和顯示比例。
重點整理
- 如果使用基準格線,請使用 4 和 8 的測量值。
- 請以 dp 和 sp 為單位,而非像素來註記規格。
- 為所有資料集匯出位圖/光柵圖形。
- 以回應式設計的思維,考量不同大小類別、解析度和顯示比例。
- 密度獨立像素 (dp):密度獨立像素是可調整的單位,可在任何螢幕上縮放至相同的尺寸。以螢幕實際密度為依據。這類單位是相對於 160 dpi (每英寸像素數) 螢幕換算而來。在這種螢幕上,1 dp 約等於 1 px。
- 可縮放像素 (sp):可縮放像素的功能與 dp 相同,但適用於字型。sp 的預設值與 dp 的預設值相同。Android 系統會根據裝置類型以及使用者在 Android 裝置的「設定」應用程式中選擇的偏好設定,計算實際顯示的字型大小。
這兩種測量單位的主要差異在於,可縮放像素會保留使用者的字型設定。為了方便無障礙使用,設定較大字型的使用者會看到與文字大小偏好設定相符的字型大小。瞭解如何在 Compose 中變更字型大小。
Android 會使用這些單位,在各種裝置和解析度之間進行縮放和轉譯。
密度值區
高密度螢幕的每英寸所含像素數量高於低密度螢幕。因此,相同像素尺寸的 UI 元素在低密度螢幕上會顯示為較大,在高密度螢幕上則會顯示為較小。因此,請勿以像素為單位宣告測量值。
Android 會將螢幕密度範圍分組為「桶」,並使用這些桶將最佳素材資源組合提供給裝置。最常用的密度分層是 mdpi
、hdpi
、xhdpi
、xxhdpi
和 xxxhdpi
(nodpi
和 anydpi
是指不依裝置解析度縮放的分層,通常用於向量可繪項目),每個分層都對應至應用程式的資源檔案。
dp 計算方式:
dp = (寬度以像素為單位 * 160) / 螢幕密度
格線
基準格線
使用底層格線進行建構作業,有助於在 UI 中建立一致的間距和對齊方式。Android UI 會使用 8 dp 格線來處理版面配置、元件和間距。
較小的元素 (例如圖示、字型和元件中的部分元素) 最適合與 4 dp 格線對齊。
欄格
欄會建立格線結構,藉由將主體區域內的內容分割,為版面配置提供垂直定義。內容會放置在螢幕上包含欄位的區域。對齊底層格線以對齊內容,但應保持彈性大小。請參閱「版面配置基本概念」,瞭解如何設定欄格狀格線並套用內容。
請參閱 Material 3 的「標準版面配置」頁面,進一步瞭解如何在不同板型規格中建立彈性版面配置。
大小類別
視窗大小類別是一組自主的可視區域中斷點,有助於設計、開發及測試回應式與自動調整式應用程式版面配置。Android 將視窗大小類別分為 3 種:精簡、中等和展開。進一步瞭解視窗大小類別。
顯示比例
顯示比例是元素寬度與高度的比例。長寬比的寫法為寬度:高度。
為維持版面配置的一致性,請在圖片、介面和螢幕大小等元素上使用一致的顯示比例。
建議在 UI 中使用下列顯示比例:
- 16:9
- 3:2
- 4:3
- 1:1
- 3:4
- 2:3