Android-如何获得ListView的滚动速度?

发布于 2016-10-15 13:30:39 字数 100 浏览 1290 评论 1

在ListView滚动的时候,我想实时获得当前的滚动速度,这样我就可以生成一个滚动速度的日志,分析一个ListActivity最终实现的优劣。

所以想问大家是否可以实现?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

想挽留 2017-09-07 10:14:36

最后我是这么做的:

private class SpeedMeterOnScrollListener implements OnScrollListener {

private long timeStamp;
private int lastFirstVisibleItem;

public SpeedMeterOnScrollListener() {
timeStamp = System.currentTimeMillis();
lastFirstVisibleItem = 0;
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
long lastTime = System.currentTimeMillis();
//calculate speed by firstVisibleItem, lastFirstVisibleItem, timeStamp and lastTime
timeStamp = lastTime;
lastFirstVisibleItem = firstVisibleItem;
}

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
}

最后速度就可以这么简单的计算下:

float speed = (firstVisibleItem - lastFirstVisibleItem)/(lastTime-timeStamp)

当然这个值是可能为负数的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文