先说优点:核心代码三五十行,也无需引用额外的三方库,建议新项目可尝试
缺点:老项目改造麻烦,需要修改的地方比较多
关于实现:开启Databinding功能,在Application里调用createDesign方法初始化宽高基准,尺寸按照设计图来,单位是dp,当然如果懂得原理的话也可以对代码进行修改然后使用px也是一样的。
创建静态类ScreenAdaptationUtil 实现如下方法,根据屏幕尺寸与设计图的尺寸进行计算两者之间的倍数关系值size,这里只简单实现了宽、高、内边距的方法
Dp2PxUtils是一个简单的dp转px的工具类,网上有很多例子,很简单的
熟悉databinding的朋友知道用BindingAdapter注解的方法是可以在xml布局里使用的,当新的y_width存在时会覆盖掉原生的layout-width方法
由于要再布局里重新写宽高的方法所有对于老项目而言不太合适进行使用,新项目可以进行尝试一下。
使用起来也没有美团、鸿祥等方便,其实我是不建议这么写的,大家就随便看看。