这篇文章主要介绍了Android 使用 Scroller 实现平滑滚动功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
记录使用Scroller实现平滑滚动,效果图如下:
一、自定义View中实现View的平滑滚动
Scroller其实是个辅助类,本身并不能完成动画的执行。而是帮我们计算随着时间的流逝,动画应该执行的位置值,我们需要获得当前时间的位置,然后调用View位置移动方法,将View移动到该位置,完成动画。
所以,在自定义View中。我们需要调用invalidate()
触发View的重绘,并覆写重绘会执行的方法computeScroll()
。
在computeScroll()
方法中调用Scroller
的computeScrollOffset()
计算当前时间动画应该移动的位置,返回值是动画是否在执行。
通过mScroller.getCurrX()
和mScroller.getCurrY()
获得当前时间的位置。手动调用View位置移动的方法将View的位置移动到当前时间的位置,实现View的滚动。
然后再次调用invalidate()
触发刷新。直到computeScrollOffset()
返回false,动画执行完成,滚动完成。
二、直接使用Scroller实现View的平滑滚动
我们知道,Scroller会帮我们计算当前时间,插值器返回的值。
而如果直接使用Scroller实现平滑滚动的话,也需要借助带时间的监听器。
这里借助ValueAnimator
来实现Scroller平滑滚动
在ValueAnimator的addUpdateListener
中刷新Scroller当前值。并移动位置。效果如下:
到此这篇关于Android 使用 Scroller 实现平滑滚动的文章就介绍到这了,更多相关android Scroller 平滑滚动内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!