安卓屏幕適配框架的較量 dp & 限定符 & autolayout & autosize

 安卓屏幕適配框架的較量  dp & 限定符 & autolayout & autosize 

這裏講的是google自帶的dp適配、比較久遠的限定符適配、鴻神的autolayout、今日頭條的autosize,下面大家就一起來看看他們的效果吧:(僅單一維度測試,數值也可能不標準,僅供參考,大家不要較真哦)

爲了突出兩個模擬器之間的差異明顯,我們用的是1440*2560 和 480*800 分辨率的模擬器。下面所有圖片,左邊爲1440*2560分辨率的模擬器,右邊爲480*800分辨率的模擬器。

首先上一個參考值,px的效果:

可見此圖差異明顯,兩者都是100*100px的尺寸,也突出了px的特點:不同的設備不同的顯示屏顯示效果是相同的,這是絕對像素,是多少就永遠是多少不會改變。

接下來測試dp的效果:

dp的單位相對px來說就好一些,但是看起來還是能明顯看出差別的,dp是google提出的適配方案,但是面對衆多的機型,有時候也是不能滿足我們的適配需求。

然後下面是傳統的限定符適配方案,不多說,上效果:

這個很多兄弟們都用了好久,相當年我學安卓的時候就是用的這個,實際效果還是不錯的,不過對比着下面這些新新框架,它可能稍微就臃腫麻煩一些了。

下面首先是我們鴻神的AutoLayout, 上效果:

我們看到效果還是不錯的,他這個框架的使用實際上是將LinearLayout、RelativeLayout、FrameLayout進行的封裝,也就是說在每個佈局文件裏都需要用com.zhy.autolayout.AutoXXX來替代我們佈局組件,然後在內部寫px值就可以了。

最後是字節跳動的技術大佬提出的一套方案,autosize,進一步簡化了適配難度:

效果出來差距僅僅在4個單位,也是牛的一批,他這個框架只需要在清單文件裏標註

<meta-data
    android:name="design_width_in_dp"
    android:value="375" />
<meta-data
    android:name="design_height_in_dp"
    android:value="667" />
<meta-data
    android:name="android.max_aspect"
    android:value="2.4" /> <!-- 適配華爲(huawei)劉海屏 -->
<meta-data
    android:name="android.notch_support"
    android:value="true" /> <!-- 適配小米(xiaomi)劉海屏 -->
<meta-data
    android:name="notch.config"
    android:value="portrait|landscape" />

就okl了,甚是簡單。

那麼對比全部做完了,大國哥也要給大家一個課後題,你覺得哪個框架更好呢? 

 

最後附上測試實踐項目的git地址:

https://gitee.com/CeMaBenTeng/screen_adaptation_scheme_test

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章