Android適配方案小結(三)

來源:互聯網
上載者:User

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)



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.