1.手機和平板的劃分
人爲判斷方法:大於6英寸的就是平板。小於6英寸的都是手機。
平板尺寸:6英寸、7英寸、10英寸、14英寸…
2.平板專有的 android 3.x 系統
3.2之前使用屏幕限定符 small、normal、large、xlarge 等命名備用資源
3.2之後適配要使用限定符 swxxxdp。
3.屏幕尺寸限定符
swxxxdp:最小寬限定符,寬高中最小的一個值
wxxxdp : 指定資源可使用的最小寬度,屏幕方向變化時,寬度值會變
hxxxdp : 指定資源可使用的最小高度,屏幕方向變化時,高度值會變
總結:平板的適配基準 sw480dp、sw600dp(7英寸)、sw720dp(10英寸)等,手機屏幕的適配基準是 mdpi、hdpi、xhdpi 等。
4.聲明尺寸支持
在清單文件 AndroidManifest 中可以通過聲明來說明當前應用支持哪些屏幕。如果應用支持Android支持的所有屏幕尺寸(最小屏幕尺寸是 426dpx320dp),則不需要此步驟。
Android 3.2 爲 supports-screens 清單元素引入了新的屬性
android:requiresSmallestWidthDp:指定應用只用於最小寬度值。設定此值之後,只有設備的 smallestWidth 必須大於等於此值,才能使用該應用。
例如:如果應用只用於最小可用寬度爲 600dp 的平板電腦樣式設備,則在清單文件中聲明如下:
設置了該屬性之後,如果設備是 1024x720mdpi 的可以下載此應用,因爲 1024x720mdpi 的最小屏幕寬度是 720dp,但是應用在清單文件中設置的是 600dp。720dp>600dp
如果設備是 1024x720hdpi 的就不能能下載此應用,因爲 1024x720hdpi 的最小屏幕寬度是 720dp*1.5=480dp。sw480dp<600dp。以此類推。
用戶設備的兩個尺寸(widthxheight)的最小值必須大於等於 android:requiresSmallestWidthDp 值才能下載,但不影響設備運行。
注意:此值目前設置無效。因爲此值的設置並不影響系統運行,而是在應用商店上過濾應用。所以,如果想要使應用不支持小屏幕,就要使用其他的尺寸屬性,而不應該使用該屬性。因爲不起效果。
android:compatibleWidthLimitDp:指定應用支持的最大“最小寬度”,將屏幕兼容性模式用作用戶可選的功能。如果設備可用屏幕的最小邊大於您在這裏的值, 用戶仍可安裝您的應用,但提議在屏幕兼容性模式下運行。默認情況下,屏幕兼容性模式會停用,並且您的佈局照例會調整大小以 適應屏幕,但按鈕會顯示在系統欄中,可讓用戶打開和關閉屏幕兼容性模式。
例如:如果在清單文件中設置該屬性的值爲 600,則如果用戶的設備是 1024x720mdpi=sw720dp,則用戶可以仍可以安裝.
注意:如果應用可針對大屏幕正確調整大小,則無需使用此屬性。建議不要使用此屬性,而是按照建議,確保應用的佈局針對較大屏幕調整大小。
android:largestWidthLimitDp:此屬性可指定應用支持的最大“最小寬度”來 強制啓用屏幕兼容性模式。如果設備可用屏幕的最小邊大於該值,應用將在屏幕兼容模式下運行,且用戶無法停用該模式。
注意:建議不要使用此屬性來針對多屏幕適配。
5.使用示例
該方法基於Android多屏幕適配-手機思想
ui 基準是 1024x552mdpi。則屏幕寬度值的基準設置爲 sw552dp
對於不同的屏幕密度的設置如下:
1024x552mdpi=sw552dp
以此類推,保證 sw限定符 的單位是 dp 即可。