一、概述
这个类封装了滚动操作。使用这个类可以获得用于创建滚动动画的数据——例如:用于回应滑动手势。
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以毫秒为单位。
该睡觉了,不能影响室友休息。。。