1. 程式人生 > >Android 螢幕適配終極版

Android 螢幕適配終極版

最近看了鴻洋大神寫的螢幕適配的問題,正好有點時間,就想說學習記錄一下。
主要內容:
一、用法。
二、原理。

一、用法

(1)註冊設計圖尺寸

1、將autolayout引入。

dependencies {
    compile project(':autolayout')
}

2、在你的專案的AndroidManifest中註明你的設計稿的尺寸。

<meta-data android:name="design_width" android:value="768"></meta-data>
<meta-data android:name
="design_height" android:value="1280">
</meta-data>

3、在Activity中開啟設配

讓你的Activity去繼承AutoLayoutActivity。

4、寫Layout佈局檔案就是按照設計師給的圖來做,不用dp,直接用px。如下圖(盜了一張鴻洋大大的圖,這樣方便我自己理解^_^)
這裡寫圖片描述

注意:
1、記住你設計稿的尺寸,比如 768 * 1280(在AndroidManifest檔案中標明的)
然後在你的PreView面板,選擇解析度一致的裝置:
這裡寫圖片描述
2、目前支援屬性

layout_width
layout_height
layout_margin(left,top,right,bottom)
pading(left,top,right,bottom)
textSize
不會影響系統所有的其他屬性,以及不會影響dp,sp的使用。

3、效能的提升
通過本庫的方式去編寫程式碼,可以在很大程式上使用margin,也就是說,對於View的位置非常好控制,從而能夠減少非常多的巢狀,甚至任何一個複雜的介面做到無巢狀。

以及,幾乎不需要去使用RelativeLayout的規則了,比如rightOf,完全可以由marginLeft完成,其他的rule同理。

對於LinearLayout的weight,幾乎也不需要使用了,比如螢幕寬度720px,想要四個控制元件橫向均分,完全可以寫layout_width=”180px”。

二、原理
AutoLayoutActivity的用法實際上是完成了一件事:

LinearLayout -> AutoLinearLayout
RelativeLayout -> AutoRelativeLayout
FrameLayout -> AutoFrameLayout

在AndroidManifest檔案中的px並不代表1畫素,內部會進行百分比化處理,也就是說:720px高度的螢幕,你這裡填寫72px,佔據10%;當這個佈局檔案執行在任何解析度的手機上,這個72px都代表10%的高度,這就是本庫適配的原理。