- 語法:
-
<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:requiresSmallestWidthDp
、android:compatibleWidthLimitDp
及android: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
- 指定應用程式所需的最低
smallestWidth
。smallestWidth
是螢幕空間的最小尺寸 (以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
- 另請參閱:
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2024-08-20 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{
"last_modified": "上次更新時間:2024-08-20 (世界標準時間)。",
"state": ""
}