- 平板B: 768/1 = 768
上述两个平板,一个是600dp,一个是768dp,都是大于600dp,平板A使用sw600dp-hdpi,平板B使用sw600dp-mdpi
最后称述
平板A、B 同时显示一个 100px 的图片:
-
按最小宽度适配:100 *1.5 *0.8 = 120 ,图片会显示成 120px
-
按今日头条适配: 100 * 1.04166 = 104.166,图片会显示成 104.166 px
-
所以今日头条方案显示的图片就更小了。
那么,哪个更好呢?我们再来看看一个极端,显示一个 平板B 的填满宽度的图片, 768px:
-
按最小宽度适配:768px *1.5 *0.8 = 921.6px ,图片会显示成 921.6px, 远远超出平板A的尺寸,此时开发人员需要手动干预
-
按今日头条适配: 768px * 1.04166 = 799.99488,图片可以看成显示成 800 px
-
优点很明显,布局更简单
严谨的你,可能会问了,那显示超过768px呢?
不好意思,我们的基准就是 768,不会超过他了。
smallesWidth 方案迁移
我们原项目使用的是 smallestWidth 方案,经试验迁移代价很低,经研究有如下两个方案。
-
删除所有适配 smallestWidth 的dimens 文件夹,只保留dp 值是1:1 的 dimens 文件即可;
-
不想删除亦可,将所有的 dimens 文件都覆盖成 dp 值是1:1 的 dimens 文件即可
优缺点
优点
-
使用成本非常低,操作非常简单,使用该方案无需增加dimens 文件,修改代码,完虐其他屏幕适配方案
-
侵入性非常低,切换几乎瞬间完成,试错成本接近为0
-
修改的 density 是全局的,一次修改,终生受益。
-
不会有任何性能的损耗
-
今日头条 大厂保证
缺点
1、 第三方布局库, 未按项目效果图布局,全局修改 density 导致修改第三方布局,造成显示界面问题
2、与 smallestwith 适配方案不兼容,切换回来比较麻烦