螢幕相容性總覽

Android 可在多種螢幕大小和像素密度的裝置上執行。系統會執行基本資源調度和調整大小作業,以便配合不同螢幕調整使用者介面,但您可透過許多方式協助 UI 更適合各種螢幕類型。

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

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

螢幕大小

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

靈活的版面配置

根據預設,Android 會調整應用程式版面配置的大小,以符合目前螢幕。為了讓版面配置能針對螢幕大小的小型變化版本妥善調整大小,您必須考量彈性,以便實作版面配置。請勿以硬式編碼的方式加入 UI 元件的位置和大小,請改為延展檢視畫面大小,並指定相對於父項檢視畫面或其他同層級檢視畫面的檢視畫面位置,以便在版面配置成長時,讓預定順序和相對大小保持不變。

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

替代版面配置

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

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

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

可延展圖片

由於版面配置需要延展以符合目前螢幕,因此將您附加至任何版面配置檢視畫面的點陣圖。不過,以任意方向延展一般點陣圖,可能會產生錯誤的縮放影像和歪斜的圖片。

為解決這個問題,Android 支援 nine-patch 點陣圖,指定可延展的小型像素區域,其餘圖片則仍保持不變。

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

像素密度

像素密度是指螢幕實體範圍內的像素數量,也稱為 dpi (dots per inch,每英寸像素數)。這與螢幕解析度不同,後者是螢幕上的像素總數。

圖 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 架構和工具會提供您讓應用程式支援所有螢幕設定所需的一切資源,但您可能會因為不相容而造成應用程式無法在某些螢幕設定上取得。在這種情況下,您可以宣告受限畫面支援