当用户从左向右滑动时,我需要更改图像;这就是我使用SimpleOnGestureListener
检测ImageView
上的滑动事件的原因。
在这个过程中,当我慢慢地滑动图像时,onScroll()
方法会频繁调用并且每件事情都正常工作但是当我快速滑动这个图像时,onScroll()
方法只调用了两次三次,请让我知道我应该使用什么方法来根据刷卡的速度调用onScroll()
方法。
答案 0 :(得分:3)
由于有很多细节要说,我在这里发布我的答案而不是添加评论。
onFling
为您提供了四个有用的参数:两个MotionEvent
和两个速度数。有了这些有用的信息,您可以在Scroller
上致电fling
。滚动对象将为您完成剩下的工作(例如,在一段时间后获取当前的x / y值)。
对于您的情况,您可以致电computeScrollOffset
和getCurrX/getCurrY
来处理您的"滑动动画"。只需在视图的x / y到达边界时更改显示图像。
例如,假设您的指针向上位置为(0,0)且初始x速度为1000像素/秒。在500毫秒后,您拨打computeScrollOffset
(它肯定会返回true)并且getCurrX
可能会返回600(因为fling不会线性移动)。更改图像的确切时间取决于您
对于Scroller
的详细用法,应该有很多例子。一个很好的例子肯定是official training lession
答案 1 :(得分:1)
我可以想到实现你想要的其他方式
onFling()
为您提供X
和Y
的速度:如果它大于4000它被视为快速滚动,那么您可以为连续图像设置动画,效果就像快速刷卡一样。