Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android適配方案小結(三)

Android適配方案小結(三)

編輯:關於Android編程

在Android適配方案小結(一)、(二)中,我們了解了一些基本概念。
那麼在具體開發中,我們應該注意什麼呢。
首先,我們必須要知道,其實適配的關鍵在於兩點:
(1)不同分辨率設備的適配,這點在單位的使用上用dp、sp以及圖片資源存放於不同的drawable文件夾就可以解決問題;
(2)不同尺寸的適配,這點主要靠將相關值以及布局文件放置於不同的文件夾中來解決。
2.1 values文件夾
可以在工程下創建不同的values文件夾:values-sw480dp, values-sw600dp,
values-sw720dp-land等。比如一個控件的寬度,在10寸pad上是10dp,在8寸pad
上是5dp。這時,你可以定義一個變量,button_width,然後在values-sw600dp
下寫5dp,在values-sw720-land下寫
10dp。這樣就達到了在不同尺寸pad上,
相應控件大小不一樣的效果。
2.1 layout文件夾
如果在不同尺寸設備上展示的布局有明顯差別,僅僅用values不同已經難以控制,
那麼就可以考慮寫不同的布局文件置於不同的layout文件夾下,android會根據設備
尺寸去加載相應文件夾下的布局文件。如:layout-sw480dp,layout-sw600dp,
layout-sw700dp等。
值得注意的是,如果不是很有必要,盡量采用2.1方案,方便維護。如果尺寸和分辨率都不同,
那麼就要結合(1)、(2)考慮了。

(補充:其實values文件夾和layout文件夾不僅僅是根據尺寸判斷,也和分辨率有關,不過在通常情況下,

綜合計算考慮,僅根據尺寸判斷就可以了:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).
600dp的含義是:代表這個設備的最短的那一邊。

獲取設備的最短邊的代碼是:Configuration config = getResources().getConfiguration();

int smallestScreenWidth = config.smallestScreenWidthDp;

這個時候拿smallestScreenWidth 與600想比較就可以知道該設備能否讀取裡面的資源了。


除此之外,為了方便適配,在編碼時我們還應該注意什麼呢,主要有以下幾點:

(1)多使用權重(android:layout_weight)

尤其是在tab切換布局,listview title及Item布局等情況下;
(2)設置寬度和高度時,盡量使用match_parent和wrap_content,避免把控件寬高設死;
(3)父容器布局選用
多使用RelativeLayout,FrameLayout,GridLayout等,減少布局層次。當然,在使用
權重時,得采用LinearLayout;
(4) 在xml裡,設置高度、寬度采用dp(dip),設置字體采用sp。

(應該注意,在代碼裡面,我們寫的setHeight(...)單位是px)



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved