Scroller 类简单介绍 翻译

哥的E文不是很好,所以这里的翻译是根据自己使用后的理解来写的,跟原文有很多的出入。


1.概述

Scroller封装了滚动效果, 持续滚动的时间可以是默认的时间(在fling函数里可以找到默认时间mDuration = (int) (1000.0 * Math.exp(l / (DECELERATION_RATE - 1.0)));)也可以通过使用startScroll函数自己指定(最后一个变量指定持续时间 startScroll(int startX, int startY, int dx, int dy, int duration),经过这段时间后滚动完,computeScrollOffset()函数会返回false表示滚动结束。

将Scroll使用到自己的对象时需要不停的调用computeScrollOffset()函数,以便更新对象的新坐标。

例如在线程里不断更新对象坐标,如下面

run(){
     if(scroller.computeScrollOffset())
     {
           obj.x=scroller.getCurrX();
           obj.y=scroller.getCurrY();
     }
}
2.构造函数

Scroller(Context context

创建一个默认持续时间和动画插入器的Scroller。

Scroller(Context context, Interpolator interpolator)

指定interpolator 创建一个Scroll,如果interpolator为null,将使用默认的interpolator.

3.公共函数

abortAnimation();//停止动画。


computeScrollOffset();//当你想知道新坐标时调用。如果返回true,动画还没有完成,坐标将被更新为新坐标,如果返回false,代表动画完成。


extendDuration(int extend);//延长scroller动画时间。当你使用setFinalX(int newX)或者setFinalY(int newY)时,允许运行动画滚动更长和跟远。


fling (int startX, int startY, int velocityX, int velocityY, int minX, int maxX, int minY, int maxY);//基于fling手势开始滚动,滚动距离取决于fling的初始速度。

startX: 开始滚动的x坐标;

startY: 开始滚动的y坐标;

velocityX: fling手势x轴的初速度,以每秒像素计算;

velocityY: fling手势y轴的初速度,以每秒像素计算

minX: x轴的最小值,scroller不会超过这个值;

maxX: x轴的最大值,scroller不会超过这个值;

minY: y轴的最小值,scroller不会超过这个值;

maxY: y轴的最大值,scroller不会超过这个值;

forceFinished(boolean finished);//强制停止动画。


getCurrVelocity();//返回当前速度。


getCurrX();//返回当前x坐标。


getCurrY();//返回当前y坐标。


getDuration();//返回滚动的持续时间,以毫秒为单位


getFinalX();//返回结束滚动的x坐标


getFinalY();//返回结束滚动的y坐标。


getStartX();//返回开始滚动的x坐标。


getStartY();//返回开始滚动的y坐标。


isFinished();//返回Scroller是否已经完成滚动。


setFinalX(int newX);//设置x轴的最终位置。


setFinalY(int newY);//设置y轴的最终位置。


setFriction(float frictioin);//设置摩擦力。


startScroll(int startX, int startY, int dx, int dy);//根据提供的开始点跟滚动距离开始滚动。滚动将使用默认值250毫秒作为持续时间。

startX: 开始水平方向的偏移值,以像素为单位,正值表示内容向左

startY: 开始垂直方向的偏移值,以像素为单位,正值表示内容向上。

dx: 水平方向的滚动距离,正值表示内容向左滚动。

dy: 垂直方向的滚动距离,正值表示内容向上滚动。


startScroll(int startX, int startY, int dx, int dy, int duration);//根据提供的开始点跟滚动距离开始滚动。

startX: 开始水平方向的偏移值,以像素为单位,正值表示内容向左

startY: 开始垂直方向的偏移值,以像素为单位,正值表示内容向上。

dx: 水平方向的滚动距离,正值表示内容向左滚动。

dy: 垂直方向的滚动距离,正值表示内容向上滚动。

duration: 滚动持续时间,单位为毫秒。


timePassed();//返回自开始滚动以来的过去时间。单位是毫秒。








你可能感兴趣的:(Scroller 类简单介绍 翻译)