View:
1、draw
//繪制一個View以及他的子View。最好不要覆寫該方法,應該覆寫onDraw方法來繪制自己。
public void draw(Canvas canvas);
public void draw(Canvas canvas) {
1、繪制 backgroud(drawBackground) ;
2、如果需要的話,儲存canvas的layer,來準備fading ;
3、繪制view的content(onDraw方法);
4、繪制children(dispatchDraw方法);
5、如果需要的話,繪制fading edges,然後還原layer ;
6、繪制裝飾器、比如scrollBar(onDrawForeground);
}
2、onDraw
//繪制一個View的外觀。View的預設實作是空實作,是以這裡沒有源碼給出。
protected void dispatchDraw(Canvas canvas) {
if (需要繪制布局動畫) {
for (周遊子View) {
綁定布局動畫;
}
啟動動畫控制,通知動畫開始;
}
for (周遊子View) {
child.draw();
}
}