格線與單位

密度獨立像素 (dp) 和可縮放像素 (sp) 是建構版面配置和顯示字型的必要元素,可讓這些元素一致地回應 Android 裝置的各種螢幕密度、大小類別、板型規格和顯示比例。

重點整理

  • 如果使用基準格線,請使用 4 和 8 的測量值。
  • 請以 dp 和 sp 為單位,而非像素來註記規格。
  • 為所有資料集匯出位圖/光柵圖形。
  • 以回應式設計的思維,考量不同大小類別、解析度和顯示比例。
  • 密度獨立像素 (dp):密度獨立像素是可調整的單位,可在任何螢幕上縮放至相同的尺寸。以螢幕實際密度為依據。這類單位是相對於 160 dpi (每英寸像素數) 螢幕換算而來。在這種螢幕上,1 dp 約等於 1 px。
  • 可縮放像素 (sp):可縮放像素的功能與 dp 相同,但適用於字型。sp 的預設值與 dp 的預設值相同。Android 系統會根據裝置類型以及使用者在 Android 裝置的「設定」應用程式中選擇的偏好設定,計算實際顯示的字型大小。
圖 1:比較 dp 和 sp

這兩種測量單位的主要差異在於,可縮放像素會保留使用者的字型設定。為了方便無障礙使用,設定較大字型的使用者會看到與文字大小偏好設定相符的字型大小。瞭解如何在 Compose 中變更字型大小

Android 會使用這些單位,在各種裝置和解析度之間進行縮放和轉譯。

密度值區

高密度螢幕的每英寸所含像素數量高於低密度螢幕。因此,相同像素尺寸的 UI 元素在低密度螢幕上會顯示為較大,在高密度螢幕上則會顯示為較小。因此,請勿以像素為單位宣告測量值。

Android 會將螢幕密度範圍分組為「桶」,並使用這些桶將最佳素材資源組合提供給裝置。最常用的密度分層是 mdpihdpixhdpixxhdpixxxhdpi (nodpianydpi 是指不依裝置解析度縮放的分層,通常用於向量可繪項目),每個分層都對應至應用程式的資源檔案。

mdpi 的密度為 x1,hdpi 的密度為 x1.5,xhdpi 的密度為 x2,xxhdpi 的密度為 x3,而 xxxhdpi 的密度為 x4
圖 2: Party 哈密瓜的各自密度

dp 計算方式:

dp = (寬度以像素為單位 * 160) / 螢幕密度

格線

基準格線

使用底層格線進行建構作業,有助於在 UI 中建立一致的間距和對齊方式。Android UI 會使用 8 dp 格線來處理版面配置、元件和間距。

影片 1:顯示 8 個 dp 的格線,並強調 8 個 dp 的增量

較小的元素 (例如圖示、字型和元件中的部分元素) 最適合與 4 dp 格線對齊。

圖 3: 8 個像素格線最適合大多數 UI 元素,而 4 個像素格線則更適合圖示等較小的元素

欄格

欄會建立格線結構,藉由將主體區域內的內容分割,為版面配置提供垂直定義。內容會放置在螢幕上包含欄位的區域。對齊底層格線以對齊內容,但應保持彈性大小。請參閱「版面配置基本概念」,瞭解如何設定欄格狀格線並套用內容。

圖 4:四欄格狀

請參閱 Material 3 的「標準版面配置」頁面,進一步瞭解如何在不同板型規格中建立彈性版面配置。

大小類別

視窗大小類別是一組自主的可視區域中斷點,有助於設計、開發及測試回應式與自動調整式應用程式版面配置。Android 將視窗大小類別分為 3 種:精簡、中等和展開。進一步瞭解視窗大小類別

顯示比例

顯示比例是元素寬度與高度的比例。長寬比的寫法為寬度:高度。

為維持版面配置的一致性,請在圖片、介面和螢幕大小等元素上使用一致的顯示比例。

建議在 UI 中使用下列顯示比例:

  • 16:9
  • 3:2
  • 4:3
  • 1:1
  • 3:4
  • 2:3