首页 > 系统 > Android > 正文

android知识回顾之view工作流程

2019-11-09 15:24:32
字体:
来源:转载
供稿:网友

   view的工作流程主要是指measure,layout,draw这三大流程,即测量,布局和绘制,其中measure确定View的测量宽/高,layout确定view的最终宽/高和四个顶点的位置,而draw将view绘制到屏幕上。

   measure方法是一个final类型的方法,即子类不能够重写此方法,在view的measure方法中会调用view的onMeasure方法,

  PRotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        setMeasuredDimension(getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec),                getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec));    }
public static int getDefaultSize(int size, int measureSpec) {        int result = size;        int specMode = MeasureSpec.getMode(measureSpec);        int specSize = MeasureSpec.getSize(measureSpec);        switch (specMode) {        case MeasureSpec.UNSPECIFIED:            result = size;            break;        case MeasureSpec.AT_MOST:        case MeasureSpec.EXACTLY:            result = specSize;            break;        }        return result;    }getDefaultSize返回的大小就是measureSpec中的specSize.

   layout的作用是ViewGroup用来确定子元素的位置,当ViewGroup的位置被确定后,它在onLayout中会遍历所有的子元素并调用其layout方法,在layout方法中onLayout方法又会被调用。onLayout方法则会确定所有子元素的位置。

   draw的作用是将View绘制到屏幕上面,绘制过程遵循如下几步:

1.绘制背景background.draw(canvas)

2.绘制自己onDraw

3.绘制children(dispatchDraw)

4.绘制装饰(onDrawScrollBars)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表