Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android UI適配總結

Android UI適配總結

編輯:關於Android編程

系統是怎麼確定最佳資源的? 獲取手機當前的基本配置信息(語言,橫豎屏,屏幕密度,屏幕尺寸等等) 根據這些配置信息,排除apk包中與這些配置信息相矛盾的資源目錄,假設系統語言是cn,那麼所有的其他語言的目錄都會被排除掉,注意系統並不會根據一個dpi的沖突而排除掉含有其他dpi的目錄,dpi這個qualifier非常特殊 按照qualifirer的優先級,依次拿出配置信息中優先級最高的qualifier,去資源目錄中尋找包含這個qualifer的目錄,如果有,排除掉其他目錄,根據配置中下一個優先級的qualifier繼續匹配,如果沒有,接著去拿下一個優先級的qualifier,繼續尋找和排除,直到找到最合適的目錄。 實例 假設我們放置同樣名稱的圖片在如下目錄 drawable/ drawable-en/ drawable-fr-rCA/ drawable-en-port/ drawable-en-notouch-12key/ drawable-port-ldpi/ drawable-port-notouch-12key/ 當前系統的配置為 Locale = en-GB  Screen orientation = port  Screen pixel density = hdpi  Touchscreen type = notouch  Primary text input method = 12key 匹配過程 首先qualifier的優先級如下,en-GB, port,hdpi,notouch,12key   * 根據en-GB,port,hdpi,notouch,12key這些配置信息,首先排除掉**drawble-fr-rCA目錄,因為fr和en沖突 * 根據第一優先級的en-GB,找到如下三個目錄,drawable-en/,drawable-en-port/,drawable-en-notouch-12key/,排除掉目錄drawable/,drawable-port-ldpi/,drawable-port-notouch-12key/ * 接著獲取下一個優先級的qualifier,port,找到了目drawable-en-port/,排除掉其他目錄,就剩這一個了,那麼就是這個了。 重點 雖然程序會頻繁的獲取資源文件,但是那些與當前配置信息相矛盾的目錄會被永久排除掉,不會每次都去檢查   假設系統根據screen size去尋找最匹配資源的時候,如果沒有找到完全匹配的資源,系統會選擇比當前配置小一點的screen size作為匹配,(例如一個large的屏幕會選擇normal資源,如果找不到large資源的話)假設沒有的話,只有xlarge的資源,系統不會選擇使用這個資源,這個時候就會發生找不到資源的異常了。   資源限定符的優先級比匹配的qualifier多少更重要。例如在上面的例子中,drawable-en-notouch-12key/似乎更加匹配,但是port的優先級更高。   問題 假設匹配了最佳圖片目錄,但是發現目錄裡沒有自己想要的圖片會怎麼樣? 如果是mdpi中沒有圖片,可以去選擇hdpi的目錄裡找尋圖片,然後縮放 如果是large種沒有圖片,可以去normal中找尋圖片 如果layout-port中沒有布局文件,就去layout中找尋布局文件 如果values-cn-hdpi下沒有dimen的話,有待研究
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved