学习笔记:view的绘制流程

绘制View的背景,内容,绘制子View,还有前景跟滚动条。

1:drawBackground(canvas): 作用就是绘制 View 的背景。

2:onDraw(canvas) :绘制 View 的内容。View 的内容是根据自己需求自己绘制的,该方法是一个空方法,View的继承类自己复写实现绘制内容。 (每个View都需要重载该方法,ViewGroup不需要实现该方法)

3:dispatchDraw(canvas):遍历子View进行绘制内容。dispatchDraw()方法内部会遍历每个子视图,调用drawChild()去重新回调每个子视图的draw()方法。在 View 里面是一个空实现,ViewGroup 里面才会有实现。在自定义 ViewGroup 一般不用重写该方法,但可以重载父类函数实现具体的功能。

4:onDrawForeground(canvas):对前景色跟滚动条进行绘制。

5:drawDefaultFocusHighlight(canvas):绘制默认焦点高亮

学习笔记:view的绘制流程

onDraw()先于dispatchDraw()执行,用于本身控件的绘制,dispatchDraw()用于子控件的绘制(如果该View类型不为ViewGroup,即不包含子视图,不需要重载该方法)

参考:

Android View的绘制流程