首页 > 代码库 > android.widget.Scroller

android.widget.Scroller

  一、概述

    这个类封装了滚动操作。使用这个类可以获得用于创建滚动动画的数据——例如:用于回应滑动手势。
Scroller随时跟踪滚动的偏移量(相对原点),但不能自动应用这些位置信息于我们的view。

    通常使用computeScrollerOffset()方法监测滚动的横竖向偏离量,这个方法返回一个boolean值用于判断滚动动画是否完成(true表示动画还没有完成),可利用这个方法获得当前位置的偏移量,例如

1 private Scroller mScroller = new Scroller(context);2 3 4 if (mScroller.computeScrollOffset()) {5      //获得当前的横向和竖向位置(相对原点(0,0) ) 
6 int currX = mScroller.getCurrX();7 int currY = mScroller.getCurrY();8 ...9 }

 

  二、构造函数:
    public Scroller(Context context)

    以缺省的持续时间(250ms)和动画插入器创建一个Scroller

 

    public Scroller(Context context , Interpolator interpolator)

    以特定的动画插入器创建一个Scroller,若对应参数interpolator为空,则使用缺省值


 

  三、公共方法

    1.  public void abortAnimation()

    中止动画。与forceFinished(boolean)相反,滚动到终点坐标时停止动画。

    

    2.  public boolean computeScrollerOffset()

    计算滚动偏离量。当想要得到新的坐标信息时调用此方法,这与android.view.VelocityTracker中的 computeCurrentVelocity()的思想相似——先调用一个方法让程序进行计算,再使用其他方法获取计算结果。不同的是,Scroller需要判断是否有滚动动作在进行中,返回值为true表示滚动未完成(可获取当前的方向偏移量),否则就不可以了,编写相关相关操作时该有这样的判断,例如上面的代码。

 

    3.  public void extendDuration(int extend)

    延长动画的持续时间。当和setFinalX(int)和setFinalY(int)一起使用时,可以使动作持续更长时间并且滑动距离更长。参数extend以毫秒为单位。

 

该睡觉了,不能影响室友休息。。。

android.widget.Scroller