Android螢幕尺寸適配注意事項

來源:互聯網
上載者:User

1      基本設定
1.1     AndroidManifest.xml設定
在<manifest>中添加子項目<supports-screens android:largeScreens="true"android:normalScreens="true" android:anyDensity="true"android:smallScreens="true"></supports-screens>

android:anyDensity="true"時,應用程式安裝在不同密度的終端上時,程式會分別載入xxhdpi、xhdpi、hdpi、mdpi、ldpi檔案夾中的資源。 相反,如果設為false,即使在檔案夾下擁有相同資源,應用不會自動地去相應檔案夾下尋找資源:

1)       如果drawable-hdpi、drawable-mdpi、drawable-ldpi三個檔案夾中有同一張圖片資源的不同密度表示,那麼系統會去載入drawable_mdpi檔案夾中的資源;

2)       如果drawable-hpdi中有高密度圖片,其它兩個檔案夾中沒有對應圖片資源,那麼系統會去載入drawable-hdpi中的資源,其他同理;

3)       如果drawable-hdpi,drawable-mdpi中有圖片資源,drawable-ldpi中沒有,系統會載入drawable-mdpi中的資源,其他同理,使用最接近的密度層級。

 

1.2     橫屏豎屏目錄區分
1)       drawable

a)        drawable-hdpi該圖片即適用於橫屏,也適用於豎屏;

b)       drawable-land-hdpi,當螢幕為橫屏,且為高密度時,載入此檔案夾的資源;

c)        drawable-port-hdpi,當螢幕為豎屏,且為高密度時,載入此檔案夾中的資源。其他同理。

2)       layout

在res目錄下建立layout-port和layout-land兩個目錄,裡面分別放置豎屏和橫屏兩種布局檔案,以適應對橫屏豎屏自動切換。

2      多螢幕適配的4條黃金原則
1)       在layout檔案中設定控制項尺寸時應採用fill_parent、wrap_content、match_parent和dp;

具體來說,設定view的屬性android:layout_width和android:layout_height的值時,wrap_content,match_parent或dp比px更好,文字大小應該使用sp來定義。

2)       在程式的代碼中不要出現具體的像素值,在dimens.xml中定義;

為了使代碼簡單,android內部使用pix為單位表示控制項的尺寸,但這是基於當前螢幕基礎上的。為了適應多種螢幕,android建議開發人員不要使用具體的像素來表示控制項尺寸。

3)       不使用AbsoluteLayout(android1.5已廢棄) ,可以使用RelativeLayout替代;

4)       對不同的螢幕提供合適大小的圖片。

不同大小螢幕用不同大小的圖片,low:medium:high:extra-high圖片大小的比例為3:4:6:8;舉例來說,對於中等密度(medium)的螢幕你的圖片像素大小為48×48,那麼低密度(low)螢幕的圖片大小應為36×36,高(high)的為72×72,extra-high為96×96。


 

3      使用9-patch PNG圖片
使用圖片資源時,如果出現展開,因為圖片處理的原因,會變形,導致介面走形。9-patch PNG圖片也是一種標準的PGN圖片,在原生PNG圖片四周空出一個像素間隔,用來標識PNG圖片中哪些部分可以展開、哪些不可以展開、背景上的邊框位置等。

“上、左”定義可展開地區

 

 “右、下”定義顯示地區,如果用到完整填充的背景圖,建議不要通過android:padding來設定邊距,而是通過9-patch方式來定義。

 

 

Android SDK中提供了編輯9-Patch圖片的工具,在tools目錄下draw9patch.bat,能夠立刻看到編輯後的展開效果,也可以直接用其他圖片編輯工具編輯,但是看不到效果。

 

4      測實驗證
一般使用AVD Manager建立多個不同大小的模擬器, 

 


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.