前面两篇我们以Linealayout为入口分析了自定义控件的onMeasure方法和onLayout方法,本篇我们分析自定义控件比较重要的一个方法onDraw,该方法与之前的两个方法调用过程有所区别,并不是由ViewGroup来调用View的方法,而是相对独立的,这里我们需要先分析View的onDraw,再分析Linealayout的方法。
一.Draw详解
View 的onDraw方法是通过draw方法调用,这里我们从draw方法开始分析:
这里小字部分解释了draw方法绘制整个界面的过程具体如下:
1. Draw the background(绘制背景)
2. If necessary, save the canvas’ layers to prepare for fading(如果需要,为保存这层为边缘的滑动效果作准备)
3. Draw view’s content(绘制内容)
4. Draw children(绘制子View)
5. If necessary, draw the fading edges and restore layers(如果需要,绘制边缘效果并且保存图层)
6. Draw decorations (scrollbars fo