Android屏幕尺寸適配注意事項

1 基本設置

1.1 AndroidManifest.xml設置

在中添加子元素java

android:anyDensity="true"時,應用程序安裝在不一樣密度的終端上時,程序會分別加載xxhdpi、xhdpi、hdpi、 mdpi、ldpi文件夾中的資源。 相反,若是設爲false,即便在文件夾下擁有相同資源,應用不會自動地去相應文件夾下尋找資源:android

1) 若是drawable-hdpi、drawable-mdpi、drawable-ldpi三個文件夾中有同一張圖片資源的不一樣密度表示,那麼系統會去加載drawable_mdpi文件夾中的資源;markdown

2) 若是drawable-hpdi中有高密度圖片,其它兩個文件夾中沒有對應圖片資源,那麼系統會去加載drawable-hdpi中的資源,其餘同理;工具

3) 若是drawable-hdpi,drawable-mdpi中有圖片資源,drawable-ldpi中沒有,系統會加載drawable-mdpi中的資源,其餘同理,使用最接近的密度級別。佈局

1.2 橫屏豎屏目錄區分

1) drawable測試

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

b) drawable-land-hdpi,當屏幕爲橫屏,且爲高密度時,加載此文件夾的資源;blog

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 不一樣的layout
Android手機屏幕大小不一,有480x320, 640x360, 800x480.怎樣才能讓Application自動適應不一樣的屏幕呢?
其實很簡單,只須要在res目錄下建立不一樣的layout文件夾,好比layout-640x360,layout-800x480,全部的layout文件在編譯以後都會寫入R.java裏,而系統會根據屏幕的大小本身選擇合適的layout進行使用。

5 測試驗證

通常使用AVD Manager建立多個不一樣大小的模擬器,

相關文章
相關標籤/搜索