Most visited

Recently visited

Added in API level 1

Scroller

public class Scroller
extends Object

java.lang.Object
   ↳ android.widget.Scroller


这个类封装了滚动。 您可以使用滚动条( ScrollerOverScroller )来收集产生滚动动画所需的数据,例如,响应一个手指动作。 随着时间的推移,滚动器会为您追踪滚动偏移量,但它们不会自动将这些位置应用于您的视图。 您有责任按照使滚动动画看起来平滑的速率获取和应用新的坐标。

这是一个简单的例子:

 private Scroller mScroller = new Scroller(context);
 ...
 public void zoomIn() {
     // Revert any animation currently in progress
     mScroller.forceFinished(true);
     // Start scrolling by providing a starting point and
     // the distance to travel
     mScroller.startScroll(0, 0, 100, 0);
     // Invalidate to request a redraw
     invalidate();
 }

要跟踪x / y坐标的变化位置,请使用computeScrollOffset() 该方法返回一个布尔值来指示滚动器是否完成。 如果不是这样,这意味着一次泛滥或程序化的平移操作仍在进行中。 您可以使用此方法查找x和y坐标的当前偏移量,例如:

if (mScroller.computeScrollOffset()) {
     // Get current x and y positions
     int currX = mScroller.getCurrX();
     int currY = mScroller.getCurrY();
    ...
 }

Summary

Public constructors

Scroller(Context context)

使用默认持续时间和插值器创建一个滚动器。

Scroller(Context context, Interpolator interpolator)

用指定的插补器创建一个滚动条。

Scroller(Context context, Interpolator interpolator, boolean flywheel)

用指定的插补器创建一个滚动条。

Public methods

void abortAnimation()

停止动画。

boolean computeScrollOffset()

当你想知道新的位置时调用它。

void extendDuration(int extend)

扩展滚动动画。

void fling(int startX, int startY, int velocityX, int velocityY, int minX, int maxX, int minY, int maxY)

基于一个扔手势开始滚动。

final void forceFinished(boolean finished)

强制完成的字段为特定值。

float getCurrVelocity()

返回当前速度。

final int getCurrX()

返回滚动中的当前X偏移量。

final int getCurrY()

返回滚动中的当前Y偏移量。

final int getDuration()

返回滚动事件需要多长时间,以毫秒为单位。

final int getFinalX()

返回滚动结束的位置。

final int getFinalY()

返回滚动结束的位置。

final int getStartX()

返回滚动中的起始X偏移量。

final int getStartY()

返回滚动中的起始Y偏移量。

final boolean isFinished()

返回滚动器是否完成滚动。

void setFinalX(int newX)

设置此滚动器的最终位置(X)。

void setFinalY(int newY)

设置此滚动器的最终位置(Y)。

final void setFriction(float friction)

施加在fl上的摩擦量。

void startScroll(int startX, int startY, int dx, int dy, int duration)

通过提供起点,行程距离和滚动持续时间开始滚动。

void startScroll(int startX, int startY, int dx, int dy)

通过提供起始点和距离来开始滚动。

int timePassed()

返回滚动开始后的时间。

Inherited methods

From class java.lang.Object

Public constructors

Scroller

Added in API level 1
Scroller (Context context)

使用默认持续时间和插值器创建一个滚动器。

Parameters
context Context

Scroller

Added in API level 1
Scroller (Context context, 
                Interpolator interpolator)

用指定的插补器创建一个滚动条。 如果插值器为空,则将使用默认(粘性)插值器。 “飞轮”行为将针对面向Honeycomb或更新版本的应用生效。

Parameters
context Context
interpolator Interpolator

Scroller

Added in API level 11
Scroller (Context context, 
                Interpolator interpolator, 
                boolean flywheel)

用指定的插补器创建一个滚动条。 如果插值器为空,则将使用默认(粘性)插值器。 指定是否在投掷中支持渐进式“飞轮”行为。

Parameters
context Context
interpolator Interpolator
flywheel boolean

Public methods

abortAnimation

Added in API level 1
void abortAnimation ()

停止动画。 forceFinished(boolean)相反,放弃动画会导致滚动条移动到最终的x和y位置

也可以看看:

computeScrollOffset

Added in API level 1
boolean computeScrollOffset ()

当你想知道新的位置时调用它。 如果它返回true,那么动画还没有完成。

Returns
boolean

extendDuration

Added in API level 1
void extendDuration (int extend)

扩展滚动动画。 这允许正在运行的动画在与setFinalX(int)setFinalY(int)一起使用时进一步滚动更长。

Parameters
extend int: Additional time to scroll in milliseconds.

也可以看看:

fling

Added in API level 1
void fling (int startX, 
                int startY, 
                int velocityX, 
                int velocityY, 
                int minX, 
                int maxX, 
                int minY, 
                int maxY)

基于一个扔手势开始滚动。 行进的距离将取决于投掷的初始速度。

Parameters
startX int: Starting point of the scroll (X)
startY int: Starting point of the scroll (Y)
velocityX int: Initial velocity of the fling (X) measured in pixels per second.
velocityY int: Initial velocity of the fling (Y) measured in pixels per second
minX int: Minimum X value. The scroller will not scroll past this point.
maxX int: Maximum X value. The scroller will not scroll past this point.
minY int: Minimum Y value. The scroller will not scroll past this point.
maxY int: Maximum Y value. The scroller will not scroll past this point.

forceFinished

Added in API level 1
void forceFinished (boolean finished)

强制完成的字段为特定值。

Parameters
finished boolean: The new finished value.

getCurrVelocity

Added in API level 14
float getCurrVelocity ()

返回当前速度。

Returns
float The original velocity less the deceleration. Result may be negative.

getCurrX

Added in API level 1
int getCurrX ()

返回滚动中的当前X偏移量。

Returns
int The new X offset as an absolute distance from the origin.

getCurrY

Added in API level 1
int getCurrY ()

返回滚动中的当前Y偏移量。

Returns
int The new Y offset as an absolute distance from the origin.

getDuration

Added in API level 1
int getDuration ()

返回滚动事件需要多长时间,以毫秒为单位。

Returns
int The duration of the scroll in milliseconds.

getFinalX

Added in API level 1
int getFinalX ()

返回滚动结束的位置。 仅适用于“一瞥”卷轴。

Returns
int The final X offset as an absolute distance from the origin.

getFinalY

Added in API level 1
int getFinalY ()

返回滚动结束的位置。 仅适用于“一瞥”卷轴。

Returns
int The final Y offset as an absolute distance from the origin.

getStartX

Added in API level 3
int getStartX ()

返回滚动中的起始X偏移量。

Returns
int The start X offset as an absolute distance from the origin.

getStartY

Added in API level 3
int getStartY ()

返回滚动中的起始Y偏移量。

Returns
int The start Y offset as an absolute distance from the origin.

isFinished

Added in API level 1
boolean isFinished ()

返回滚动器是否完成滚动。

Returns
boolean True if the scroller has finished scrolling, false otherwise.

setFinalX

Added in API level 1
void setFinalX (int newX)

设置此滚动器的最终位置(X)。

Parameters
newX int: The new X offset as an absolute distance from the origin.

也可以看看:

setFinalY

Added in API level 1
void setFinalY (int newY)

设置此滚动器的最终位置(Y)。

Parameters
newY int: The new Y offset as an absolute distance from the origin.

也可以看看:

setFriction

Added in API level 11
void setFriction (float friction)

施加在fl上的摩擦量。 默认值是getScrollFriction()

Parameters
friction float: A scalar dimension-less value representing the coefficient of friction.

startScroll

Added in API level 1
void startScroll (int startX, 
                int startY, 
                int dx, 
                int dy, 
                int duration)

通过提供起点,行程距离和滚动持续时间开始滚动。

Parameters
startX int: Starting horizontal scroll offset in pixels. Positive numbers will scroll the content to the left.
startY int: Starting vertical scroll offset in pixels. Positive numbers will scroll the content up.
dx int: Horizontal distance to travel. Positive numbers will scroll the content to the left.
dy int: Vertical distance to travel. Positive numbers will scroll the content up.
duration int: Duration of the scroll in milliseconds.

startScroll

Added in API level 1
void startScroll (int startX, 
                int startY, 
                int dx, 
                int dy)

通过提供起始点和距离来开始滚动。 滚动将在持续时间内使用默认值250毫秒。

Parameters
startX int: Starting horizontal scroll offset in pixels. Positive numbers will scroll the content to the left.
startY int: Starting vertical scroll offset in pixels. Positive numbers will scroll the content up.
dx int: Horizontal distance to travel. Positive numbers will scroll the content to the left.
dy int: Vertical distance to travel. Positive numbers will scroll the content up.

timePassed

Added in API level 1
int timePassed ()

返回滚动开始后的时间。

Returns
int The elapsed time in milliseconds.

Hooray!