4

我有一个列表适配器,它在每一行中显示一张大照片。我在 ListAdapter.getView() 方法的线程中从磁盘上获取位图。这很好用,但有点烦人的是,当用户滚动时,他们会看到新行的顶部出现在屏幕上,ImageView 为空。从磁盘读取位图的线程很快完成,然后发生重绘。

ListAdapter 世界中是否有一个好的模式来表明“下一个”行有瞬间出现在屏幕上的危险?理想情况下,我想启动一个线程来加载这个不可见行的位图并将位图放入我的内存缓存中,这样如果用户滚动到这个单元格,位图就已经被加载了。

我想我需要知道(1)用户正在向下滚动并且(2)下一个不可见行的顶部边缘大约是 20 像素或距离可见的某个值。

谢谢

4

1 回答 1

2

注册一个AbsListView.OnScrollListener;您将被通知列表的滚动状态,并且您还将获得当前可见的项目。结合这两个参数,您应该很容易决定是否需要加载“下一个”位图。

于 2012-05-08T19:08:56.433 回答