- 語法:
-
<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>
- 說明:
可讓使用者指定應用程式支援的螢幕尺寸,對於超出應用程式可支援範圍的較大螢幕,則啟用螢幕相容模式。請務必在應用程式中一律使用這項元素來指定應用程式可支援的螢幕大小。
注意:建議不要在螢幕相容模式下執行您的應用程式。這會導致使用者介面因縮放而產生像素化和模糊的情況。讓應用程式在大螢幕上順利運作的方法,是依循螢幕相容性總覽,並針對不同螢幕大小提供其他版面配置。
如果應用程式可適當調整大小以填滿整個螢幕,就表示其可「支援」給定的螢幕尺寸。系統一般的尺寸調整方式適用於大多數應用程式,因此您不必額外進行其他操作,就能使應用程式在比手機螢幕更大的螢幕畫面上運作。
不過,建議您同時提供替代版面配置資源,以針對不同螢幕大小將應用程式的使用者介面最佳化。舉例來說,您可能會分別針對使用平板電腦裝置與在手機裝置上執行的活動修改版面配置。
但是,如果為了配合不同螢幕尺寸調整大小後,應用程式無法正常運作,您可以使用
<supports-screens>
元素的屬性來控制應用程式是只針對較小的螢幕發布,還是將其 UI 向上擴充,或是使用系統的螢幕相容模式來「縮放」來配合大螢幕。如果您並未針對較大的螢幕尺寸進行設計,而系統一般的調整大小功能無法取得合適的結果,螢幕相容模式可模擬「一般」大小的螢幕畫面和中密度,並據此調整使用者介面。接著,此模式會放大使用者介面,填滿整個螢幕。請注意,這會造成使用者介面的像素化和模糊,因此建議您針對大螢幕對使用者介面進行最佳化調整。
注意:Android 3.2 推出了新屬性:
android:requiresSmallestWidthDp
、android:compatibleWidthLimitDp
及android:largestWidthLimitDp
。如果您開發的應用程式適用於 Android 3.2 及以上版本,建議您使用這些屬性宣告支援的螢幕尺寸,而非使用以一般螢幕尺寸為根據的屬性。關於螢幕相容模式
請在不得已的情況下,才針對設計時未充分利用大螢幕尺寸的應用程式使用螢幕相容模式。這並非適合應用程式執行的模式,因為可能會導致使用者體驗不佳。螢幕相容模式有兩種版本,依執行應用程式的裝置版本而定。
在 Android 1.6 至 3.1 版的系統中,系統會在「郵票」視窗中執行您的應用程式。此模式會模擬 320dp x 480dp 螢幕並帶有黑色邊框,以填滿螢幕畫面的剩餘區域。
在 Android 3.2 及以上版本中,系統會繪製一個版面配置,將其用在 320dp x 480dp 螢幕上,然後放大以填滿螢幕畫面。這通常會導致使用者介面出現失真情形,例如模糊及像素化。
如要進一步瞭解如何正確支援不同螢幕尺寸,避免應用程式使用螢幕相容模式,請參閱「螢幕相容性總覽」。
- 屬性:
-
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
為單位),其必須適用於應用程式的使用者介面,也就是螢幕的兩邊中較短的一邊。裝置的
smallestWidth
必須大於或等於這個值,才能與您的應用程式相容。一般情況下,無論目前的螢幕方向為何,您在此提供的值都是指版面配置支援的「最小寬度」。舉例來說,一般手機螢幕的
smallestWidth
為 320dp,7 吋平板電腦的smallestWidth
為 600dp,10 吋平板電腦的smallestWidth
則為 720dp。這些值通常就是smallestWidth
,因為它們是螢幕可用空間的最小尺寸。這個值所比較的大小,會考慮到螢幕裝飾及系統使用者介面等元素。舉例來說,如果裝置螢幕畫面上有一些永久性的使用者介面元素,系統會宣告裝置的
smallestWidth
小於實際螢幕大小,因為這些元素是您的使用者介面中無法使用的螢幕像素。如果您的應用程式可調整大小以配合較小的螢幕 (包括「小」尺寸,或最小寬度 320dp),您不必使用這項屬性。否則,您為此屬性設定的值,應與應用程式針對 最低螢幕寬度限定詞 (
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-01-09 (世界標準時間)。
[{
"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-01-09 (世界標準時間)。",
"state": ""
}