Java
是以在具体的ViewGroup中须要遍历去测量子View,这里我们看看ViewGroup中供给的测量子View的measureChildWithMargins办法:
- protected void measureChildWithMargins(View child,
- int parentWidthMeasureSpec, int widthUsed,
- int parentHeightMeasureSpec, int heightUsed) {
- final MarginLayoutParams lp = (MarginLayoutParams) child.getLayoutParams();
- final int childWidthMeasureSpec = getChildMeasureSpec(parentWidthMeasureSpec,
- mPaddingLeft + mPaddingRight + lp.leftMargin + lp.rightMargin
- + widthUsed, lp.width);
- final int childHeightMeasureSpec = getChildMeasureSpec(parentHeightMeasureSpec,
- mPaddingTop + mPaddingBottom + lp.topMargin + lp.bottomMargin
- + heightUsed, lp.height);
- child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
- }
Java
上述办法会对子元素进行measure,在调用子元素的measure办法之前会先经由过程getChildMeasureSpec办法来获得子元素的MeasureSpec。大年夜代码上看,子元素的MeasureSpec的创建与父容器的MeasureSpec和本身的LayoutParams有关,此外和View的margin和父类的padding有关,如今看看getChildMeasureSpec的具体实现:
- ViewGroup.java
- public static int getChildMeasureSpec(int spec, int
推荐阅读
在处理矢量化数据时,记录中往往话苄很多反复数据,对进一步数据处理带来诸多不便。多余的数据一方面浪费了较多的存储空间,另一方面造成所要表达的图形不但滑或不相符标准。是以要经由过程某种规矩,在包管矢量曲线>>>详细阅读
本文标题:Android View绘制的三大流程
地址:http://www.17bianji.com/lsqh/36843.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示