ViewPager自动播放或者点击按钮切换setCurrentItem方法动画问题

来源:互联网 发布:文本聚类算法 编辑:程序博客网 时间:2024/05/22 12:13


        在做ViewPager浏览图片的时候,给ViewPager加了一些动画,用手去滑动切换的时候动画能够正常显示,但是当用按钮点击或者自动切换的时候动画就没了,

每次切换都是一闪而过,效果很不佳,后来看了一位朋友的文章,原来是切换的时间未控制好,导致动画很短察觉不到,所以只需要将切换的时间设长点就可以了,

具体实现:

public class MyScroller extends Scroller {            private int animTime = 300;            public MyScroller(Context context)     {               super(context);           }            public MyScroller(Context context, Interpolator interpolator)    {               super(context, interpolator);           }                       @Override          public void startScroll(int startX, int startY, int dx, int dy, int duration)    {          super.startScroll(startX, startY, dx, dy, animTime);           }            @Override           public void startScroll(int startX, int startY, int dx, int dy)     {              super.startScroll(startX, startY, dx, dy, animTime);          }       public void setmDuration(int animTime)    {          this.animTime = animTime;      }     }  

这个就是控制切换时间的类,下面:

try{Field mField = ViewPager.class.getDeclaredField("mScroller");mField.setAccessible(true);     MyScroller mScroller = new MyScroller(pager.getContext(), new AccelerateInterpolator());mField.set(pager, mScroller);   } catch (NoSuchFieldException e){// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalArgumentException e){// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e){// TODO Auto-generated catch blocke.printStackTrace();}