Android-如何获得ListView的滚动速度?
在ListView滚动的时候,我想实时获得当前的滚动速度,这样我就可以生成一个滚动速度的日志,分析一个ListActivity最终实现的优劣。
所以想问大家是否可以实现?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在ListView滚动的时候,我想实时获得当前的滚动速度,这样我就可以生成一个滚动速度的日志,分析一个ListActivity最终实现的优劣。
所以想问大家是否可以实现?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
最后我是这么做的:
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)
当然这个值是可能为负数的。