一,前言AutoLayout
? ? ? ? ? ? ? AutoLayoutActivity是專為安卓手機屏幕適配而設(shè)計的開源項目煤杀,AutoLayoutActivity根據(jù)開發(fā)者在View布局時設(shè)置寬高的值眷蜈,再根據(jù)手機屏幕分辨率的不同,而進行等比例的分配沈自。也就類似于我們經(jīng)常用到的適配方法在LinearLayout中設(shè)置的權(quán)重比例酌儒。在開發(fā)過程中,總有一些地方是無法用match_parent和wrap_content進行分配酥泛,或者相對布局來解決今豆。所以引入了AutoLayout嫌拣,這樣便可以隨意設(shè)置px或者dp,而不會造成在不同手機屏幕分辨率上的不同顯示效果呆躲,甚至變形了异逐。
二,配置AutoLayout的相關(guān)依賴
在build.gradle中引入依賴包
dependencies {
compile'com.zhy:autolayout:1.4.5'
}
引入完成后插掂,在AndroidManifest清單配置中加入當前預(yù)覽的寬高配置灰瞻,否則會報錯!這里我選擇的是我自己的手機屏幕分辨率辅甥≡腿螅可以根據(jù)自己喜好選擇。
默認使用的高度是設(shè)備的可用高度璃弄,也就是不包括狀態(tài)欄和底部的操作欄的要销,如果你希望拿設(shè)備的物理高度進行百分比化:
可以在Application的onCreate方法中進行設(shè)置:
AutoLayoutConifg.getInstance().useDeviceSize(); ??
三,在項目中引入AutoLayoutActivity
這里沒有什么特別的夏块,只是選擇基類時的Activity為AutoLayoutActivity疏咐,AutoLayoutActivity繼承了所有的Activity的屬性,可以放心使用脐供。
結(jié)構(gòu)搭建完成以后浑塞,F(xiàn)rameLayout、LinearLayout政己、RelativeLayout等幾大常用布局酌壕,便有了AutoLayout的自動適配屬性,
四歇由,不引入AutoLayoutActivity
當有的開發(fā)者不愿繼承AutoLayoutActivity也沒關(guān)系卵牍,同樣可以在XML布局中,直接調(diào)用屬性包的Layout.對應(yīng)是:
LinearLayout -> AutoLinearLayout
RelativeLayout -> AutoRelativeLayout
FrameLayout -> AutoFrameLayout
利用該布局印蓖,同樣可以實現(xiàn)等比例分配屏幕適配辽慕。
五,結(jié)語
? ? ? ? ?第一次寫博客赦肃,寫的不好溅蛉,希望大家多多支持,后期會陸續(xù)寫一些實用有助于開發(fā)的相關(guān)技術(shù)或者開源項目介紹他宛。不足之處希望大家能提出來船侧。
謝謝!