0

所以我有一个带有图像和一些由自定义数组适配器挂钩的文本的列表视图。我面临的问题是图像的加载速度仍然有点慢,我不喜欢。我看过谷歌技术讲座,并试图通过重新使用 convertView 的视图来优化我的列表(如果它为空,则膨胀,如果不是,则重新使用)。我还生成了 AsyncTasks 来加载位图,并将 BitmapFactory.Options inSampleSize 设置为 2 的幂,因为图像相对较小。我还使用 ViewHolder 模式来减少 findViewById 调用。

然而,即使这样,当我滚动浏览我的列表时,convertViews 是如何被重用的非常明显,因为随着我向上和向下滚动图像会不断更新。

我在库存的 Android 照片库中注意到的是,我拥有数百张照片,当我快速滚动浏览时,照片最初加载缓慢,但随后被缓存。缓存的数量远远超过屏幕能够显示的数量,所以当我滚动时,最初照片会无缝加载,直到我滚动通过缓存的照片数量,然后重新加载照片再次明显。

有没有办法用 ArrayAdapter 做到这一点?基本上,在我的列表视图中存储超过 9 个视图(我的屏幕能够显示的内容),以便当用户快速向下滚动时,用户必须向下滚动很多,然后才能重用 convertView,从而获得引人注目的图像重新加载?

提前致谢!

4

1 回答 1

0

使用多个并行线程在后台加载图像。

例如:向多个线程发送操作;示例应用程序从 Picasa 精选照片 RSS 源下载缩略图。希望这可以帮助。

于 2012-12-21T18:38:07.630 回答