<supports-螢幕>

語法:
<supports-screens android:resizeable=["true"| "false"]
                  android:smallScreens=["true" | "false"]
                  android:normalScreens=["true" | "false"]
                  android:largeScreens=["true" | "false"]
                  android:xlargeScreens=["true" | "false"]
                  android:anyDensity=["true" | "false"]
                  android:requiresSmallestWidthDp="integer"
                  android:compatibleWidthLimitDp="integer"
                  android:largestWidthLimitDp="integer"/>
包含於:
<manifest>
說明:

用來指定應用程式支援的螢幕大小,如果螢幕大小超出應用程式可支援範圍,則可啟用螢幕相容模式。請務必在應用程式中一律使用這項元素,指定應用程式可支援的螢幕大小。

注意:建議不要在螢幕相容模式下執行應用程式。這會導致 UI 因縮放而出現像素化和模糊的情況。讓應用程式在大螢幕上順利運作的適當做法,是依循「螢幕相容性總覽」一文所述,並為不同螢幕大小提供其他版面配置。

如果應用程式可適當調整大小來填滿整個螢幕,就表示能「支援」給定的螢幕尺寸。系統標準的大小調整功能適用於大多數應用程式,因此您不必執行額外工作,應用程式就能在比手機更大的螢幕上運作。

不過,建議您同時提供替代版面配置資源,針對不同螢幕大小最佳化應用程式 UI。舉例來說,相較於在手機上,您可能需要修改平板電腦上的活動版面配置。

不過,如果為了符合不同螢幕尺寸,導致應用程式在調整大小後無法正常運作,可以使用 <supports-screens> 元素的屬性,控制是否要只將應用程式發布至較小的螢幕,或使用系統的螢幕相容模式,讓 UI 放大 (即「縮放」) 至適合較大的螢幕。

如未專為較大的螢幕調整設計,但系統標準的大小調整功能無法取得合適的結果,那麼螢幕相容模式可縮放 UI,模擬「標準」大小和中密度的螢幕。接著,此模式會放大 UI,填滿整個螢幕。請注意,這會導致 UI 像素化和模糊,因此建議您針對大螢幕將 UI 最佳化。

注意:Android 3.2 推出新屬性:android:requiresSmallestWidthDpandroid:compatibleWidthLimitDpandroid:largestWidthLimitDp。如果您開發的應用程式適用於 Android 3.2 以上版本,建議您使用這些屬性宣告支援的螢幕大小,而非使用以一般螢幕大小為依據的屬性。

關於螢幕相容模式

請只在不得已時,才針對設計時未充分利用大螢幕的應用程式使用螢幕相容模式。這並非適合應用程式執行的模式,因為可能會導致使用者體驗不佳。螢幕相容模式有兩種版本,依執行應用程式的裝置版本而定。

在 Android 1.6 至 3.1 版中,系統會在「郵票」視窗中執行應用程式。此視窗會模擬 320 dp x 480 dp 的螢幕,並加上黑色邊框,填滿其餘螢幕區域。

在 Android 3.2 以上版本中,系統會繪製版面配置,如同在 320 dp x 480 dp 螢幕畫面上,然後放大來填滿螢幕畫面。這通常會導致 UI 出現模糊、像素化等假影。

如要進一步瞭解如何正確支援不同螢幕大小,避免應用程式使用螢幕相容模式,請參閱「螢幕相容性總覽」。

屬性:
android:resizeable
指出應用程式能否針對不同螢幕調整大小。此屬性預設為 "true"。如果設為 "false",則系統會在大螢幕裝置上以螢幕相容模式執行應用程式。

此屬性已淘汰。當初導入此屬性是為了協助應用程式從 Android 1.5 版轉換至 1.6,也是首次針對多種螢幕提供支援。請勿使用此屬性。

android:smallScreens
指出應用程式是否支援「小」螢幕板型規格。小螢幕是指顯示比例小於「標準」尺寸的螢幕,或傳統 HVGA 螢幕。如果應用程式不支援小螢幕,小螢幕裝置就「無法」透過外部服務 (例如 Google Play) 使用該應用程式,因為這類平台無法讓應用程式在小螢幕上發揮應有的功能。此屬性預設為 "true"
android:normalScreens
指出應用程式是否支援「標準」螢幕板型規格。傳統上,這是指 HVGA 中密度螢幕,不過 WQVGA 低密度和 WVGA 高密度也可視為標準螢幕。此屬性預設為 "true"
android:largeScreens
指出應用程式是否支援「大」螢幕板型規格。大螢幕是指尺寸遠大於「標準」手機螢幕的裝置螢幕。因此可能需要特別注意,讓應用程式能充分利用這類螢幕空間,雖然可能需要系統重新調整畫面大小,才能填滿整個螢幕。

這項屬性的預設值因版本而異,因此建議明確宣告這項屬性。請注意,若將這項屬性設為 "false",通常會啟用螢幕相容模式

android:xlargeScreens
指出應用程式是否支援「超大」螢幕板型規格。超大螢幕是指遠大於「大」螢幕裝置 (例如平板電腦或更大型裝置) 的螢幕。因此可能需要特別注意,讓應用程式能充分利用螢幕空間,雖然可能需要系統重新調整畫面大小,才能填滿整個螢幕。

這項屬性的預設值因版本而異,因此建議明確宣告這項屬性。請注意,若將這項屬性設為 "false",通常會啟用螢幕相容模式

這項屬性是在 API 級別 9 中導入。

android:anyDensity
指出應用程式是否包含可適應任何螢幕密度的資源。

如果應用程式支援 Android 1.6 (API 級別 4) 以上版本,這個屬性會預設為 "true"。請「不要」將其設為 "false",除非您確定應用程式必須如此設定才能運作。只有在應用程式直接操控點陣圖時,才可能需要停用此功能。詳情請參閱「螢幕相容性總覽」。

android:requiresSmallestWidthDp
指定應用程式所需的最低 smallestWidthsmallestWidth 是螢幕空間的最小尺寸 (以 dp 為單位),必須適用於應用程式 UI,也就是螢幕兩邊中較短的一邊。

裝置的 smallestWidth 必須大於或等於這個值,才能與應用程式相容。一般而言,無論目前的螢幕方向為何,您在此提供的值都是指版面配置支援的「最小寬度」。

舉例來說,一般手機螢幕的 smallestWidth 為 320 dp,7 吋平板電腦的 smallestWidth 為 600 dp,10 吋平板電腦的 smallestWidth 則為 720 dp。這些值通常就是 smallestWidth,因為是螢幕可用空間的最小尺寸。

這個值所比較的大小,會考量螢幕裝飾及系統 UI。舉例來說,如果裝置螢幕畫面上有一些永久性的 UI 元素,系統宣告的裝置 smallestWidth 會小於實際螢幕大小,因為這些元素是 UI 無法使用的螢幕像素。

如果應用程式可調整大小來配合較小的螢幕 (包括「小」尺寸,或最小寬度為 320 dp),則不需要使用這項屬性。否則您為此屬性設定的值,應符合應用程式針對最小螢幕寬度限定詞 (sw<N>dp) 所用的最小值。

注意:Android 系統不會注意這項屬性,因此這項屬性不會影響應用程序在執行階段中的表現。反之,這項屬性可用來在 Google Play 等服務上篩選應用程式。不過,Google Play 目前在 Android 3.2 上不支援篩選這項屬性,因此如果應用程式不支援小螢幕,建議您繼續使用其他的螢幕大小屬性。

這項屬性是在 API 級別 13 中導入。

android:compatibleWidthLimitDp
這項屬性可用來指定應用程式設計的「最小螢幕寬度」上限,方便啟用螢幕相容模式做為使用者的選用功能。如果裝置可用螢幕的最短邊大於這個值,使用者仍然可以安裝應用程式,但只能在螢幕相容模式下執行。

根據預設,螢幕相容模式為停用狀態,版面配置也會照常調整為適合螢幕的大小。系統資訊列會顯示按鈕,讓使用者切換螢幕相容模式。

如果應用程式與所有螢幕大小相容,而且版面配置可以正確調整大小,則不需使用此屬性。

注意:目前螢幕相容模式只能模擬寬度為 320 dp 的手機螢幕,因此如果 android:compatibleWidthLimitDp 的值大於 320,系統就不會套用螢幕相容模式。

這項屬性是在 API 級別 13 中導入。

android:largestWidthLimitDp
這項屬性可用來指定應用程式設計的「最小寬度」上限,強制啟用螢幕相容模式。如果裝置可用螢幕的最短邊大於此值,應用程式就會在螢幕相容模式下執行,且使用者無法停用。

如果應用程式與所有螢幕大小相容,而且版面配置可以正確調整大小,則不需使用此屬性。否則,請先考慮使用 android:compatibleWidthLimitDp 屬性。請只在以下情況使用 android:largestWidthLimitDp 屬性:應用程式針對較大的螢幕調整大小後,變得無法正常運作,而採用螢幕相容模式是使用應用程式的唯一方法。

注意:目前螢幕相容模式只能模擬寬度為 320 dp 的手機螢幕,因此如果 android:largestWidthLimitDp 的值大於 320,系統就不會套用螢幕相容模式。

這項屬性是在 API 級別 13 中導入。

導入版本:
API 級別 4
另請參閱: