Android 關於資源適配

weixin_34391854發表於2015-02-09


一. 關於圖片資源


圖片寬高 不要固定大小,在小螢幕和大螢幕,不同分頻率上 ,採用不同的圖片,這個要美工切圖的。


不同的解析度,介面的長寬比不一致,須要不同規格的圖片
在drawable-hdpi,drawable-ldpi,drawable-mdpi 中放不同解析度的圖片
注:為了減小整個應用程式安裝包大小,選用最高解析度適配,特殊介面圖片特殊處理


二. 關於佈局適配。


 Android手機螢幕大小不一,有480x320,640x360,800x480.如何才幹讓App自己主動適應不同的螢幕呢? 事實上非常easy,僅僅須要在res資料夾下建立不同的layout資料夾,比方:layout-640x360,layout-800x480,全部的layout檔案在編譯之後都會寫入R.java裡,而系統會依據螢幕的大小自己選擇合適的layout進行使用。




1. 儘量不要使用絕對佈局


2. 儘量使用match_parent,不要使用fill_parent,在佈局中設定長度的時候,最好    使用Wrap-content,match-parent,文字要使用sp,畫素要使用dip/dp。


      3. 可以使用權重的地方儘量使用權重(android:layout_weight)。

      4. 假設是純色背景,儘量使用android的shape 自己定義

     5. 假設須要在特定解析度下適配,能夠在res資料夾上新建layout-HxW.xml的資料夾。

比方要適配1080*1800的螢幕(魅族MX3採用此解析度)則新建layout- 1800x1080.xml的目錄,然後在以下定義佈局。Android系統會優先查詢解析度 同樣的佈局,假設不存在則換使用預設的layout下的佈局。




不同解析度,介面的字型大小,字型等須要不同的樣式,且須要動態生成的情況下,
須要把不同解析度的配置資訊儲存到應用中。
樣例:
在RES裡建立 values-480x320 values-800x400  value-1280x720
並在建立的目錄中分別建立dimens.xml
<dimen name="Text_size">30px</dimen>
在程式中直接呼叫R.dimen.Text_size
int sizeOfText = (int) this.getResources().getDimension(R.dimen.Text_size); 
注:實際應用發現,字型大小適配時
比方僅僅適配了例如以下螢幕字型 
values-480x320 values-800x480  value-1280x720
當出現手機螢幕解析度為 854x480時會自己主動找最大字型適配 (value-1280x720)
總結:假設字型800x480以上沒有適配,手機自己主動按最大解析度適配.





相關文章