Activity的繪制流程在onResume之后開始,切入點(diǎn)是ViewRootImpl類的performTraversals方法
View的繪制流程是measure,layout,draw
ViewGroup在繪制過(guò)程中會(huì)先遍歷子View然后才會(huì)繪制自身,例如先遍歷measure子View,然后再計(jì)算出自身的尺寸。
measure 測(cè)量大小 SpecMode分為三種 EXACTLY AT_MOST UNSPECIFIED
layout 在父布局中的位置
draw 繪制 invalidate() postInvalidate() postInvalidateDelayed(long delayMilliseconds) 這三個(gè)方法都有一個(gè)重載版本,接受(int l, int t, int r, int b)這么一組參數(shù) -- 部分重繪

、
ndroid事件分發(fā)機(jī)制
三個(gè)重要角色
1、Activity:接收Down點(diǎn)擊事件,傳遞給Phonewindow和DecorView
2、ViewGroup:攔截事件,或者繼續(xù)傳遞給子View
3、View:決定消費(fèi)這個(gè)事件或者不消費(fèi)從而返回給上一級(jí)
三個(gè)核心事件
1、dispatchTouchEvent():分發(fā)點(diǎn)擊事件,return false 事件停止往子View傳遞和分發(fā) 觸發(fā)自身 onTouchEvent
2、onTouchEvent() : return false 是不消費(fèi)事件,并讓事件往父控件的方向從下往上流動(dòng)。return true 是消費(fèi)事件。
3、onInterceptTouchEvent():攔截點(diǎn)擊事件, return false 不攔截,允許事件向子View傳遞, return true攔截事件,不在向子View傳遞事件。