<android> 安卓屏幕适配框架的较量 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

猜你喜欢

转载自blog.csdn.net/csdn_lg_one/article/details/103602027