源码分析:onAttach, onMeasure, onLayout, onDraw 的顺序。(三)

2015-07-24 05:57:12 · 作者: · 浏览: 60
rizontalEdges) { // Step 3, draw the content if (!dirtyOpaque) onDraw(canvas); // Step 4, draw the children dispatchDraw(canvas); // Step 6, draw decorations (scrollbars) onDrawScrollBars(canvas); // we're done... return; }
注释写的很明白, 在step 1 中绘制背景, 在step 3 中调用自己的ondraw(); 在step 4 中 调用dispatchDraw() 绘制子view 。
最后调用sWindowSession.finishDrawing() 估计是通知底层完成吧,不太懂。//TODO

                try {
                    sWindowSession.finishDrawing(mWindow);
                } catch (RemoteException e) {
                }

draw的部分到此完成


至此,一次完整的绘制流程就走完了,剩下的就是一遍遍的重复这个过程啦。回调过程参见前文《深入分析UI 上层事件处理核心机制 Choreographer》

尾巴


尾巴,接下来过一下事件的流程吧。