思路:了解View的绘制流程
View中的onMeasure方法,但是真正实现测量的方法是measure(int widthMeasureSpec, int heightMeasureSpec),在下图执行了onMeasure方法




那么在LayoutInflater中又做了哪些事?可以找到rInflate(XmlPullParser parser, View parent, Context context, AttributeSet attrs, boolean finishInflate)这里进行了xml的解析同时调用了ViewGroup的generateLayoutParams()方法,并且传入参数attrs这里是关键,源码真的是很多直接上代码~
首先自定义一个在xml中通用的rootView例如RelativeLayout重写onMeasure和generateLayoutParams方法如图

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