Android中View的绘制过程

2014-11-24 11:01:45 ? 作者: ? 浏览: 0

View可以看成一个树形结构,父控件是父节点,子控件是子节点。View的绘制过程就是遍历这棵树。


View的绘制有三步:


以上的步骤必须按照顺序来。(顺便说一下,以上三个步骤发生在View的构造方法之后。)


measure是绘制视图的第一步,因为只有知道的View的大小(Width和Height)才能绘图。


我们在编写layout的xml文件的时候,会遇到layout_width和layout_height两个属性,对于这两个属性我们有三个选择:fill_parent、wrap_content和具体值,measure就是用来处理fill_parent、wrap_content两个属性的,在绘图的时候,要知道具体的值,所以要计算fill_parent、wrap_content的具体值。


下面是几个重要的函数和参数:


前两个方法是View类里面的方法,后三个方法是ViewGroup类里面的方法。


先来看看measure的源码:



setMeasuredDimension源码如下:



以上施加的限制只是父视图“希望”子视图的大小按MeasureSpec中描述的那样,但是子视图的具体大小取决于多方面的。


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: