スクロール時の描画方法
どうやっているのかずっと気になっている。
ScrollViewのソースコードを読み込む
onTouchEvent() をハンドリングしている
タッチ移動時
ACTION_MOVE -> ScrollView::scrollBy -> ScrollView::scrollTo -> View::scrollTo -> invalidate
フリング時
ACTION_UP -> ScrollView::fling -> invalidate -> ・・・-> ViewGroup::drawChild -> ScrollView::computeScroll -> Scrollerで位置計算 -> postInvalidate
SlidingTab のアニメーション
ACTION_MOVE -> SlidingTab::moveHandle
移動量の分だけmRight/mLeftを設定
閾値を超えたらアニメーション開始
Gallary
mFlngRunnableのメソッドで開始 startUsing*****メソッド
Gallary::trackMotionScroll() によって位置を再計算して、invalidate()で再描画を繰り返す
要素の追加は?
ViewAnimator
ひとつのViewを表示する。
アニメーションは、Animationクラスを利用
ViewSwitcher
二つのViewを切り替えて表示する
ImageSwitcher
Viewの中でもImageViewを切り替えて表示する
ViewFlipper
自動的にViewAnimator::showNext()呼ぶだけ。アニメーションは特に管理していない。