螢幕相容性總覽

Android 可在不同螢幕大小和像素密度的各式裝置上執行。系統會執行基本資源調度和調整大小,配合不同的螢幕自動調整使用者介面,但也有方法可以協助 UI 更符合各種螢幕類型。

圖 1. Android 可在不同螢幕和像素密度的不同裝置上運作。

本頁概略說明 Android 提供的功能,協助應用程式做出相應的調整。如要進一步瞭解如何建構不同螢幕變化版本的應用程式,請參閱下列說明文件:

螢幕大小

螢幕大小是應用程式 UI 的可見空間。應用程式可辨識的螢幕大小並非裝置螢幕大小的實際大小。應用程式必須將螢幕方向、系統裝飾 (例如導覽列) 和視窗設定變更納入考量,例如使用者啟用多視窗模式

靈活的版面配置

根據預設,Android 會調整應用程式版面配置以符合目前螢幕的大小。為了讓版面配置能妥善因應螢幕大小的小變化,實作版面配置時請考量彈性。因此,請勿以硬式編碼的方式安排 UI 元件的位置和大小。請改為讓檢視畫面大小延展,並指定相對於上層檢視畫面或其他同層級檢視畫面的檢視畫面位置,讓預期的順序和相對大小在版面配置擴大時保持不變。

如要進一步瞭解彈性版面配置,請參閱「回應式設計」。

替代版面配置

彈性版面配置十分重要,但您也需要設計不同的版面配置,針對不同裝置上的可用空間提供最佳的使用者體驗。Android 可讓您根據目前裝置的螢幕大小,提供系統在執行階段套用的替代版面配置檔案。

圖 2. 同一個應用程式會針對不同螢幕大小使用不同的版面配置。

如要瞭解如何建立替代版面配置,請參閱「自動調整設計」。

可延展的圖片

由於版面配置需要延展,以配合目前的螢幕,因此,您連接至任何版面配置檢視區塊的點陣圖。但是,以任意方向延展一般點陣圖可能會導致出現奇怪的縮放構件,導致圖片出現偏差。

為解決這個問題,Android 支援 nine-patch 點陣圖,您可在其中指定可延展的小型像素區域,而圖片的其餘部分則會保持未縮放。

如要進一步瞭解 nine-patch 點陣圖,請參閱 NinePatch 可繪項目

像素密度

像素密度是指螢幕實體區域內的像素數量。這種情況稱為 dpi (每英寸像素數)。這與螢幕解析度不同,後者是螢幕上的像素總數。

圖 3. 針對尺寸相同但像素密度不同的兩部裝置,看起來更加清楚。

像素密度獨立性

當應用程式在不同像素密度的螢幕上顯示時,如果應用程式保留了 UI 設計的實體大小 (從使用者角度來看),則達成「密度獨立性」,如圖 3 所示。維持密度獨立性非常重要,因為沒有此按鈕等 UI 元素,在低密度螢幕中可能顯示的較大,在高密度螢幕上可能更小。

Android 會以密度獨立像素 (dp 或 dip) 作為使用的測量單位 (而不是像素 (px)),協助您達成密度獨立性。

如要進一步瞭解密度獨立像素,請參閱「使用密度獨立像素」一文。

替代點陣圖

為了讓圖片在所有螢幕上都能呈現最佳效果,請提供符合各螢幕密度的替代點陣圖。如果您的應用程式只針對低密度螢幕提供點陣圖,Android 會在高密度螢幕中將其放大,讓圖片在螢幕上佔用相同的實體空間。這可能會在點陣圖中造成可見的縮放構件。因此,應用程式必須包含解析度較高的替代點陣圖。

如要瞭解如何提供替代點陣圖,請參閱「提供替代點陣圖」。

向量圖形

如為簡單的圖片類型 (例如圖示),您可以使用向量圖形,避免為各個密度建立個別的圖片。由於向量圖形定義了使用幾何線條路徑 (而非像素) 的說明,因此無須縮放誤差,任何大小都能繪製。

如要進一步瞭解如何使用向量圖形,請參閱「偏好向量圖形」。

Wear OS、TV、Android Auto 和 ChromeOS

上述建議適用於所有 Android 板型規格,但如果您想建構適用於 Wear OS、Android TV、Android Auto 或 ChromeOS 裝置的應用程式,就需要完成更多工作。

每種裝置類型都有專屬的使用者互動模型,應用程式必須滿足這些條件。在某些情況下 (例如 Wear OS 裝置),您必須重新思考應用程式的使用者體驗,並建構該裝置專用的應用程式。另一方面,如要支援 ChromeOS 裝置 (例如 Google Pixelbook),您可能需要稍微修改現有應用程式,以支援鍵盤或滑鼠互動及更大的螢幕。

如要支援這些裝置,請參閱下列說明文件:

折疊式裝置

折疊式裝置通常會有多個螢幕,且螢幕 (或螢幕組合) 會隨裝置折疊狀態的不同而啟用。請按照本文件中的指南進行,讓應用程式適應這些變更。不過,部分設定可能有不尋常的顯示比例,因此請測試應用程式在各種裝置上的行為。

圖 4. 折疊及展開。

一般來說,若應用程式在多視窗模式中適用於不同大小的視窗大小,在折疊式裝置上也能正常運作。

如要進一步瞭解如何建構折疊式裝置的應用程式,請參閱「瞭解折疊式裝置」。

螢幕不相容

雖然 Android 架構和工具提供了所有必要功能,讓您讓應用程式可供所有螢幕設定使用,但您可能會因為不相容的緣故,選擇不讓某些螢幕設定支援您的應用程式。在這種情況下,您可以宣告僅支援部分螢幕尺寸