在做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 block
e.printStackTrace();
} catch (IllegalArgumentException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}