建設(shè)政府信息網(wǎng)站如何注冊網(wǎng)站平臺
基本概念
supports-screens用于設(shè)置屏幕相關(guān),處于Manifest的子標(biāo)簽中。
使您能夠指定應(yīng)用支持的屏幕尺寸,并為比應(yīng)用支持的最大屏幕還大的屏幕啟用屏幕兼容性模式。請務(wù)必始終在應(yīng)用中使用此元素指定應(yīng)用支持的屏幕尺寸。
注意:建議不要在屏幕兼容性模式下運行應(yīng)用,因為它會因縮放而導(dǎo)致界面中出現(xiàn)像素化和模糊。讓應(yīng)用在大屏幕上正常運行的正確方法是遵循屏幕兼容性概覽中的說明,并為不同尺寸的屏幕提供備用布局。
如果應(yīng)用可以適當(dāng)調(diào)整大小以填充整個屏幕,那么它就“支持”指定的屏幕尺寸。由系統(tǒng)應(yīng)用的標(biāo)準(zhǔn)大小調(diào)整方式對于大多數(shù)應(yīng)用來說效果不錯,您無需執(zhí)行任何額外操作即可讓應(yīng)用在比手機更大的屏幕上運行。不過,通常需要通過提供備用布局資源來優(yōu)化應(yīng)用的界面,以適應(yīng)不同的屏幕尺寸。例如,與在手機上運行時相比,您可能需要修改 activity 在平板電腦上的布局。
不過,如果應(yīng)用在調(diào)整大小以適應(yīng)不同的屏幕尺寸時效果不佳,您可以使用 元素的屬性來控制是將應(yīng)用分發(fā)到較小的屏幕,還是使用系統(tǒng)的屏幕兼容性模式放大(“縮放”)界面以適應(yīng)較大的屏幕。如果您未針對較大屏幕尺寸進(jìn)行設(shè)計,并且標(biāo)準(zhǔn)大小調(diào)整方式無法達(dá)到理想的效果,則屏幕兼容性模式會通過模擬標(biāo)準(zhǔn)尺寸屏幕和中密度,然后再放大來縮放界面,以使其填充整個屏幕。請注意,這會導(dǎo)致界面像素化和變模糊,因此最好針對大屏幕優(yōu)化界面。
屏幕兼容性模式簡介
只有在萬不得已時,才可以針對無法充分利用較大屏幕尺寸的應(yīng)用使用屏幕兼容模式。建議不要在此模式下運行應(yīng)用,因為它會導(dǎo)致用戶體驗不佳。屏幕兼容性模式有兩種不同的版本,具體取決于運行應(yīng)用的設(shè)備版本。
在 Android 版本 1.6 至 3.1 中,系統(tǒng)會在“郵票式”窗口中運行您的應(yīng)用。它會模擬 320dp x 480dp 屏幕,并用黑色邊框填充屏幕的剩余區(qū)域。
在 Android 3.2 及更高版本上,系統(tǒng)會像在 320dp x 480dp 屏幕上一樣繪制布局,然后將其放大以填充屏幕。這通常會導(dǎo)致界面中出現(xiàn)模糊和像素化之類的失真。
語法
<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"/>
屬性
android:resizeable
指示應(yīng)用是否可根據(jù)不同的屏幕尺寸調(diào)整大小。此屬性的默認(rèn)值為 true。如果設(shè)置為 false,則系統(tǒng)在大屏幕上會以屏幕兼容性模式運行應(yīng)用。
此屬性已棄用。引入此屬性是為了幫助應(yīng)用從 Android 1.5 過渡到 1.6(首次引入對多屏幕的支持)。請不要使用此屬性。
android:smallScreens
指示應(yīng)用是否支持較小屏幕這種設(shè)備類型。 小屏幕指的是寬高比小于“標(biāo)準(zhǔn)”(傳統(tǒng) HVGA)屏幕的屏幕。不支持小屏幕的應(yīng)用將不適用于采用外部服務(wù)(如 Google Play)的小屏幕設(shè)備,因為平臺幾乎無法讓此類應(yīng)用在較小屏幕上正常運行。此屬性的默認(rèn)值為 “true”。
android:normalScreens
指示應(yīng)用是否支持“標(biāo)準(zhǔn)”屏幕這種設(shè)備類型。一直以來,標(biāo)準(zhǔn)屏幕是指 HVGA 中密度屏幕,但 WQVGA 低密度和 WVGA 高密度也被視為標(biāo)準(zhǔn)屏幕。此屬性的默認(rèn)值為“true”。
android:largeScreens
指示應(yīng)用是否支持較大屏幕這種設(shè)備類型。 大屏幕指的是比“標(biāo)準(zhǔn)”手機屏幕大得多的屏幕,雖然應(yīng)用可以依賴系統(tǒng)調(diào)整大小來填充屏幕,還是可能需要特別注意,以充分利用此類屏幕。
此屬性的默認(rèn)值實際上在某些版本之間會有所不同,因此最好始終明確聲明此屬性。請注意,將其設(shè)置為“false”一般會啟用屏幕兼容性模式。
android:xlargeScreens
指示應(yīng)用是否支持超大屏幕這種設(shè)備類型。 超大屏幕指的是比“大”屏幕大得多的屏幕(例如平板電腦或更大的設(shè)備),雖然應(yīng)用可以依賴系統(tǒng)調(diào)整大小來填充屏幕,還是可能需要特別注意,以充分利用此類屏幕。
此屬性的默認(rèn)值實際上在某些版本之間會有所不同,因此最好始終明確聲明此屬性。請注意,將其設(shè)置為“false”一般會啟用屏幕兼容性模式。
android:anyDensity
指示應(yīng)用是否包含用于適應(yīng)任何屏幕密度的資源。
對于支持 Android 1.6(API 級別 4)及更高版本的應(yīng)用,此屬性默認(rèn)為“true”。不應(yīng)將其設(shè)置為“false”,除非您非常確定有必要這樣設(shè)置才能讓應(yīng)用正常運行。只有在您的應(yīng)用直接操控位圖時才有必要停用此屬性(如需了解詳情,請參閱支持多種屏幕文檔)。
android:requiresSmallestWidthDp
指定所需的最小 smallestWidth。smallestWidth 是必須為應(yīng)用界面提供的屏幕空間的最短邊尺寸(以 dp 為單位),也是可用屏幕的兩個尺寸中的最短尺寸。因此,為了使設(shè)備與您的應(yīng)用兼容,設(shè)備的 smallestWidth 必須等于或大于此值。(通常,無論屏幕的當(dāng)前方向如何,此值都是布局支持的“最小寬度”。)
例如,典型手機屏幕的 smallestWidth 為 320dp,7 英寸平板電腦的 smallestWidth 為 600dp,10 英寸平板電腦的 smallestWidth 為 720dp。這些值通常為 smallestWidth,因為它們是屏幕可用空間的最短邊尺寸。
與您的值進(jìn)行比較的尺寸將屏幕裝飾和系統(tǒng)界面都考慮在內(nèi)。例如,如果設(shè)備的屏幕上有一些永久性界面元素,則系統(tǒng)會將設(shè)備的 smallestWidth 聲明為小于實際屏幕尺寸的尺寸,從而考慮這些界面元素,因為這些界面元素是您的界面無法使用的屏幕像素。因此,您使用的值應(yīng)該是布局所需的最小寬度,無論當(dāng)前屏幕方向如何。
如果您的應(yīng)用針對較小屏幕尺寸(小至“小”尺寸或最小寬度 320dp)適當(dāng)調(diào)整大小,則無需使用此屬性。否則,您為此屬性使用的值應(yīng)與應(yīng)用針對最小屏幕寬度限定符 (swdp) 所使用的最小值一致。
注意:Android 系統(tǒng)不會注意此屬性,因此它不會影響應(yīng)用在運行時的行為方式。不過,您可以使用此屬性在 Google Play 等服務(wù)上為應(yīng)用啟用過濾功能。但是,Google Play 當(dāng)前不支持使用此屬性進(jìn)行過濾(在 Android 3.2 上)。因此,如果您的應(yīng)用不支持小屏幕,則應(yīng)繼續(xù)使用其他尺寸屬性。
該屬性是 API 級別 13 中的新增屬性。
android:compatibleWidthLimitDp
通過此屬性,您可以指定應(yīng)用支持的“最小屏幕寬度”最大值,從而啟用屏幕兼容性模式作為用戶可選的功能。如果設(shè)備的可用屏幕最小邊大于您在此處指定的值,則用戶仍可以安裝應(yīng)用,但要在屏幕兼容性模式下運行該應(yīng)用。默認(rèn)情況下,屏幕兼容性模式處于停用狀態(tài),系統(tǒng)通常會調(diào)整布局大小以適應(yīng)屏幕大小,但用戶可以使用系統(tǒng)欄中出現(xiàn)的按鈕啟用和停用屏幕兼容性模式。
如果您的應(yīng)用與所有屏幕尺寸兼容,并且其布局可以適當(dāng)調(diào)整大小,則無需使用此屬性。
注意:目前,屏幕兼容性模式僅模擬寬度為 320dp 的手機屏幕,因此如果 android:compatibleWidthLimitDp 的值大于 320,則不會應(yīng)用屏幕兼容性模式。
該屬性是 API 級別 13 中的新增屬性。
android:largestWidthLimitDp
通過此屬性,您可以指定應(yīng)用支持的“最小屏幕寬度”最大值,從而強制啟用屏幕兼容性模式。如果設(shè)備的可用屏幕最小邊大于您在此處指定的值,那么應(yīng)用會在屏幕兼容性模式下運行,且用戶不能停用該模式。
如果您的應(yīng)用與所有屏幕尺寸兼容,并且其布局可以適當(dāng)調(diào)整大小,則無需使用此屬性。否則,您應(yīng)首先考慮使用 android:compatibleWidthLimitDp 屬性。只有在以下情形才應(yīng)使用 android:largestWidthLimitDp 屬性:您的應(yīng)用在針對較大屏幕調(diào)整大小時無法正常運行,并且屏幕兼容性模式是用戶使用您的應(yīng)用的唯一途徑。
現(xiàn)狀
屏幕適配的問題在目前的使用中使用還是比較少的,如果后續(xù)有使用了可以再關(guān)注。