Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android屏幕適配規則

Android屏幕適配規則

編輯:關於Android編程

要適配不同的屏幕,首要需要的是要能夠將不同的屏幕分辨出來,android提供了若干不同的維度來進行限定(qualifier,有的翻譯為限定詞)

\

上圖所示為常用的一些維度,不過不是全部,全部的維度可以在官方的列表中查找。

圖中從左到右按照箭頭指示方向的優先級依次降低(查找匹配資源的時候會用到優先級),同時在對res子目錄采用限定詞進行命名的時候,也必須按照這個優先級進行命名,例如res-sw600dp-port是對的而res-port-sw600dp就會出現編譯錯誤。有些維度可以有很多不同的具體參數,如smallestWidth,有些只能有固定的一些選擇,如語言,屏幕方向port/land這種。

 

 

以下分別來介紹各個維度:

1、語言(zh-rCN), 主要可以用ISO 639-1標准定義的兩個字母的語言代碼

2、smallestWidth最短可用寬度(sw-dp),這個是從android3.2開始加入的,表示設備可用的最短寬度,與屏幕方向無關。但是,這個參數在使用時會涉及到屏幕上的一些組件,如果屏幕上有navigation bar等,則最短可用寬度可能並不到屏幕的最短邊的數值,因為這個參數指的是我們的UI可用的區間。

適配流程:當多個目錄都使用了該限定詞的時候,匹配原則為不大於可用寬度的最大值。即如果屏幕最短邊為1536,屏幕密度為xhdpi(即320dpi),1536/2 = 768,則在所有的sw-dp中選擇小於等於768的最大值,也即向下查找匹配。

3、available width(w-dp與smallestWidth類似,但是與屏幕方向有關,向下匹配

4、screenSize屏幕尺寸,根據屏幕對角線大小來界定(單位inch-英寸),可分為small/normal/large/xlarge。適配順序為從高到低,如果只有超過當前實際尺寸的目錄中有定義,則crash。這個維度從android3.2開始已經不建議使用,建議采用shortestWidth。

5、屏幕方向,這個是最簡單的,橫向縱向

6、Screen density屏幕密度(dots per inch),ldpi/mdpi/hdpi/xhdpi/xxhdpi分別對應的屏幕密度為120/160/240/320/480/640dpi,在放置資源的時候資源大小也要按照相應比例。(決定1dp代表多少pixel)。

適配流程:優先從當前屏幕密度匹配的目錄查找,如果沒有則不斷向上層查找(傾向於將大圖片縮小,而不是小圖片放大),如果上層沒有則向下層查找,如果都沒有,才取默認的目錄,定位到特定目錄後,會根據定位到的目錄與當前屏幕密度的比例關系進行縮放操作。

7、分辨率 (800*480,官方文檔上已經沒有,但目前仍可使用,優先級介於nav和platform之間,適配順序為從高到低

8、Platform version:參見Api Levels。適配順序也是從高到低

 

 

 

Android資源匹配流程:

\

 

 

 

Best practice:

1、為不同的屏幕尺寸及方向提供不同的layout,dimen

2、為不同的屏幕密度dpi提供不同的drawable

3、提供默認資源防止crash

4、修改某個目錄下的值的時候,確認其上層是否有配置該參數值,如果有,則可以直接修改;如果沒有,則要將本層的值復制到上層之後再來修改本層的值

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved