ViewPager切换动画速度修改

来源:互联网 发布:普通话练习软件下载 编辑:程序博客网 时间:2024/06/05 06:17

ViewPager的setCurrentItem() 切换动画速度是写死的

我们需要自定义一个scroller的类 

public class FixedSpeedScroller  extends Scroller {    private int mDuration = 0;    public FixedSpeedScroller(Context context) {        super(context);    }    public FixedSpeedScroller(Context context, android.view.animation.Interpolator interpolator) {        super(context, interpolator);    }    public FixedSpeedScroller(Context context, android.view.animation.Interpolator interpolator, boolean flywheel) {        super(context, interpolator, flywheel);    }    @Override    public void startScroll(int startX, int startY, int dx, int dy, int duration) {        super.startScroll(startX, startY, dx, dy, mDuration);    }    @Override    public void startScroll(int startX, int startY, int dx, int dy) {        super.startScroll(startX, startY, dx, dy, mDuration);    }    public void setmDuration(int time) {        mDuration = time;    }    public int getmDuration() {        return mDuration;    }}

调用方法:

//viewpager的动画播放速度修改private void setViewPagerScrollSpeed( ){    try {        Field field = ViewPager.class.getDeclaredField("mScroller");        field.setAccessible(true);        FixedSpeedScroller scroller = new FixedSpeedScroller(vp_contribution.getContext(),                new AccelerateInterpolator());        field.set(vp_contribution, scroller);        scroller.setmDuration(500);    }catch(NoSuchFieldException e){    }catch (IllegalArgumentException e){    }catch (IllegalAccessException e){    }}



0 0
原创粉丝点击