检测GridView滚动速度 – Android

检测GridView滚动速度 – Android,第1张

概述我有一个从GridView子类的自定义视图,我使用它来显示一些自定义的3D动画/效果.我这样做的方式是重写dispatchDraw(). 理想情况下,我想知道在画画时滚动的当前速度.目前,我使用GestureDetector.OnGestureListener并捕获onScroll事件,这非常有效,除了它也不会将flings检测为滚动事件. 想到的一个想法是捕获onFling事件,然后自行进行处理 我有一个从GrIDVIEw子类的自定义视图,我使用它来显示一些自定义的3D动画/效果.我这样做的方式是重写dispatchDraw().

理想情况下,我想知道在画画时滚动的当前速度.目前,我使用GestureDetector.OnGestureListener并捕获onScroll事件,这非常有效,除了它也不会将flings检测为滚动事件.

想到的一个想法是捕获onFling事件,然后自行进行处理,以便以后检测速度.

有没有更好的方法来实现这一点?任何简单的查询GrIDVIEw滚动速度的方法?

谢谢.

解决方法 嗯,我希望你现在得到你的答案,但我仍然会发布一个,以备将来使用…

您将需要覆盖OnScrollListener并计算自己的速度.
运动学:距离/时间=速度

private class SpeedDetectorOnScrollListener implements OnScrollListener {    private long timeStamp;    private int prevFirstVisibleItem;    private int scrollingSpeed;    public SpeedDetectorOnScrollListener () {        timeStamp = System.currentTimeMillis();        lastFirstVisibleItem = 0;    }    @OverrIDe    public voID onScroll(AbsListVIEw vIEw,int firstVisibleItem,int visibleItemCount,int totalitemCount) {        long lastTime = System.currentTimeMillis();        timeStamp = lastTime;        lastFirstVisibleItem = firstVisibleItem;        scrollingSpeed =  (firstVisibleItem - lastFirstVisibleItem)/(lastTime-timeStamp)    }     public int getSpeed()     {       return scrollingSpeed;     } }
总结

以上是内存溢出为你收集整理的检测GridView滚动速度 – Android全部内容,希望文章能够帮你解决检测GridView滚动速度 – Android所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1131818.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存