美文网首页
Android布局万能适配思路

Android布局万能适配思路

作者: Archer_Coder | 来源:发表于2018-05-11 11:32 被阅读34次

思路:了解View的绘制流程

View中的onMeasure方法,但是真正实现测量的方法是measure(int widthMeasureSpec, int heightMeasureSpec),在下图执行了onMeasure方法 image.png View在更新布局的时候调用的是requestLayout方法 image.png 进入ViewRootImpl中找到performTraversals()方法 image.png image.png 在performMeasure中可以看到调用了View.measure方法 image.png

那么在LayoutInflater中又做了哪些事?可以找到rInflate(XmlPullParser parser, View parent, Context context, AttributeSet attrs, boolean finishInflate)这里进行了xml的解析同时调用了ViewGroup的generateLayoutParams()方法,并且传入参数attrs这里是关键,源码真的是很多直接上代码~

首先自定义一个在xml中通用的rootView例如RelativeLayout重写onMeasure和generateLayoutParams方法如图 image.png image.png

在UIUtils中需要得到缩放值,如果UI是以1080为标准,那么将当前设备分辨率与1080得到一个比例,用来和宽高等数值进行计算,这样就实现等比缩放了,当然要实现所有适配还需要比如padding、textsize等等...

github:https://github.com/389987790/ScreenAdapter

相关文章

网友评论

      本文标题:Android布局万能适配思路

      本文链接:https://www.haomeiwen.com/subject/zfcfdftx.html