我正在开发我的第一个应用程序,并且在这里阅读了很多内容。
一个多星期以来,我一直在尝试寻找以下问题的解决方案,但没有成功。
我有一个 Adapter
,它扩展了 ArrayAdapter
以在每行中显示图像和 3 行文本。
在 getView
内部,我为 TextView
分配相关信息,并使用 ImageLoader
类下载图像并将其分配给 ImageView
.
一切都很好!我的屏幕上有 4.5 行可见(总共 20 行)。当我第一次向下滚动时,图像会继续下载并按正确的顺序分配到列表中。
但是当我向后滚动时,列表会丢失所有图像并开始以正确的顺序重新绘制它们(每个图像 0.5-1 秒)。从我读到的内容来看,这是标准列表性能,但我想更改它。
我希望,一旦下载了图像,它将“粘贴”到当前窗口的整个 session 的列表中。就像在联系人列表或市场中一样。它只有 20 张图像(每张 6-9kb)。
希望我能解释清楚自己。
最佳答案
您需要在下载后缓存每个图像,并且每次适配器需要它时检查它是否已经下载,从缓存(磁盘或内存)中获取它,否则下载它。
首先,我建议您阅读 Android 开发网站 http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html 上的本教程。
或者使用像这样的外部库 https://github.com/koush/UrlImageViewHelper
关于android - 滚动期间将下载的图像保留在 ListView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12763830/