package com.marshalchen.common.ui; import android.annotation.TargetApi; import android.content.Context; import android.os.Build; import android.view.animation.Interpolator; import android.widget.Scroller; /** * Created by cym on 14-5-8. */ public class FixSpeedScroller extends Scroller { private int mDuration = 1000; private double mScrollFactor = 1; public FixSpeedScroller(Context context) { super(context); } public FixSpeedScroller(Context context, Interpolator interpolator) { super(context, interpolator); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) public FixSpeedScroller(Context context, Interpolator interpolator, boolean flywheel) { super(context, interpolator, flywheel); } @Override public void startScroll(int startX, int startY, int dx, int dy, int duration) { // Ignore received duration, use fixed one instead super.startScroll(startX, startY, dx, dy, (int) (mDuration * mScrollFactor)); } @Override public void startScroll(int startX, int startY, int dx, int dy) { // Ignore received duration, use fixed one instead super.startScroll(startX, startY, dx, dy, mDuration); } /** * Set the factor by which the duration will change */ public void setScrollDurationFactor(double scrollFactor) { mScrollFactor = scrollFactor; } }