View
android.view.View がすべてのビューの基底クラスになっており、次のようなコールフローで処理される
- View#draw
- drawBackground
- mBackground が設定されていれば描く
- onDraw
- サブクラスオーバーライド用
- dispatchDraw
- View では何もしない (ViewGroup でオーバーライドする)
- fading edge 設定時にグラデーションをかける
- onDrawScrollBars
- 必要ならばスクロールバーを描く
- mOverlay.getOverlayView().dispatchDraw
- drawBackground
ViewGroup
子供のビューを持つビュー (例えば ListView や LinearLayout) の基底クラス。dispatchDraw をオーバーライドして再帰的に子ビューを描画する
- dispatchDraw
- animetionフラグが立っていたら、アニメーション処理
- CLIP_TO_PADDING ならクリッピングを設定
- 子ビューごとに drawChild
- 子ビューの draw を呼ぶ
AbsListView
- draw
- super.draw
- edge grow 処理
- dispatchDraw
- CLIP_TO_PADDING ならクリッピングを設定
- !mDrawSelectorOnTop なら drawSelector
- super.dispatchDraw
- mDrawSelectorOnTop なら drawSelector
ListView
- dispatchDraw
- divider 描画
- super.dispatchDraw