當前位置:編程學習大全網 - 編程軟體 - Android中Scroller的使用及原理解析

Android中Scroller的使用及原理解析

1.1 構造Scroller

可以看到Scroller有2個構造器,其中第二個構造器需要傳入Interpolator,它是壹個插值器,決定了view在滑動中的效果。第壹種構造會默認使用ViscousFluidInterpolator這個插值器。

1.2 重寫View的computeScroll()

1.3 開始滑動

以上就是Scroller的簡單使用,需要註意的是Scroller移動的是View的內容而不是View本身,如壹個LinearLayout裏有2個Button,移動的是這2個Button而不是LinearLayout自己(原因在源碼解析裏)。

另外Scroller還有個快速滑過的方法:

2.1 先看下startScroll():

可以看到startScroll只是記錄了傳入了參數,並沒有做什麽實際操作。

2.2 前面說過移動是通過scrollTo()完成的,那麽看看它的源碼

這裏可以看到scrollTo更新了mScrollX,和mScrollY的值,最終會觸發重繪調用invalidate(),最終會調用到viewGroup的drawChild():

最終調用到了view的3個參數的draw(),再繼續看

在draw()中調用了computeScroll(),然後把最新的mScrollX,mScrollY賦值給sx,sy,最後完成移動。

那麽就是這樣壹個流程:

startScroll()->invalidate()->draw()->computeScroll()-scrollTo()->invalidate()->draw()->computeScroll()-scrollTo()...

並壹直循環,直到scroller.computeScrollOffset()返回false,滑動完成。

3.1 看壹下OverScroller擴展的方法

  • 上一篇:甘孜C語言程序設計Cat等級考試
  • 下一篇:巴中市卓創科技有限公司怎麽樣?
  • copyright 2024編程學習大全網