改变ViewPager的内容之间切换动画的速度
2015-12-22 17:08
821 查看
自定义Scroller
私有属性没有对外提供接口那么就用反射吧
<span style="font-size:18px;">public class ViewPagerScroller extends Scroller { private int mDuration; public ViewPagerScroller(Context context) { super(context); } public ViewPagerScroller(Context context, Interpolator interpolator) { super(context, interpolator); } public void setDuration(int mDuration) { this.mDuration = mDuration; } @Override public void startScroll(int startX, int startY, int dx, int dy) { super.startScroll(startX, startY, dx, dy, this.mDuration); } @Override public void startScroll(int startX, int startY, int dx, int dy, int duration) { super.startScroll(startX, startY, dx, dy, this.mDuration); } }</span>
ViewPager.java源码内容里边有
private Scroller mScroller; void initViewPager() { setWillNotDraw(false); setDescendantFocusability(FOCUS_AFTER_DESCENDANTS); setFocusable(true); final Context context = getContext(); mScroller = new Scroller(context, sInterpolator); ......
私有属性没有对外提供接口那么就用反射吧
private void setViewPagerScrollSpeed(ViewPager viewPager, int speed) { try { Field field = ViewPager.class.getDeclaredField("mScroller"); field.setAccessible(true); ViewPagerScroller viewPagerScroller = new ViewPagerScroller(viewPager.getContext(), new OvershootInterpolator(0.6F)); field.set(viewPager, viewPagerScroller); viewPagerScroller.setDuration(speed); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } }这样就可以设置滑动切换速度了!
相关文章推荐
- jquery速查表
- 想考清华?先来看看能不能吃得了清华的那份苦
- Objective-C 工厂方法
- 关联后如何使用该值、使用lr_save_string
- android蓝牙自动配对的有关问题
- html系列教程--header head iframe img
- Win7系统提示"windows文件保护"的解决方法
- 用java实现zip压缩
- 通过Ajax发送数据--jQuery方法
- java的文件上传
- 环信demo的集成 进阶版
- iTextSharp快速使用指南
- Caffe学习系列(1):安装配置ubuntu14.04+cuda7.5+caffe+cudnn
- [super dealloc]内存释放的先后顺序
- [会员登入] 透过 E-Mail进行身份认证、启用会员权利
- TMS320C6678基础学习——TMS320C6678 OverView
- 解决mysql数据库中无法插入中文数据的问题
- MongoDB简单的增删改查
- 折叠菜单ui
- 启动报错1