天天看點

Android關于螢幕适配的幾點建議

一直想謝謝關于安卓螢幕适配的問題,今天在網上收集總整理了一下,有以下幾點建議,大家共勉

1.使用wrap_content、match_parent、weight;

2.使用相對布局,盡量不使用絕對布局;

3.使用限定符,如:layout_large/xxx.xml,這樣大螢幕裝置就會自動使用該布局;

4.使用最小寬度限定符,如layout_sw700dp/xxx.xml,這樣當螢幕寬度超過700dp時就會使用該布局;

5.針對不同的分辨率,提供具體的布局,如:res/layout_800x480/xxx.xml;

6.使用布局别名,如layout下面有個布局mylayout.xml,在layout_large/xxx.xml

  1. <resources>    
  2.     <item name="mainlayout" type="layout">@layout/mylayout</item>    
  3. </resources>  

7.使用.9 圖檔,隻需要有一張放在drawable下面即可;

8、使用dp,sp而不是px來作為長度機關;

9、提供大小不同的位圖,如:mdpi,hdpi等目錄下面要有相對應的位圖;

10、判斷加載的布局來決定走不同的流程,如下

  1. setContentView(R.layout.main_layout);//此處會根據螢幕大小加載不同的布局  
  2. Button btn1 = (Button)findViewById(R.id.btn1);//其中一個布局沒有該按鈕  
  3. if(btn1 == null){  
  4.     ...  
  5. }else{  
  6.     ...  
  7. }  

注意:

1、dp與Px的換算規則:以160dpi(密度)為基準,1dp=1px,若密度是320dpi,則1dp=2px,以此類推。

2、mdpi,hdpi等目錄并不需要全部都放上圖檔,這樣會使apk占用的存儲空間變大,建議對那些比較重要的圖檔提供多個分辨率,不很重要的隻提供一張即可。