7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Android 描画フロー

Posted at

View

android.view.View がすべてのビューの基底クラスになっており、次のようなコールフローで処理される

  • View#draw
    • drawBackground
      • mBackground が設定されていれば描く
    • onDraw
      • サブクラスオーバーライド用
    • dispatchDraw
      • View では何もしない (ViewGroup でオーバーライドする)
    • fading edge 設定時にグラデーションをかける
    • onDrawScrollBars
      • 必要ならばスクロールバーを描く
    • mOverlay.getOverlayView().dispatchDraw

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
7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?