android - 滚动期间将下载的图像保留在 ListView 中

标签 android scroll android-arrayadapter

我正在开发我的第一个应用程序,并且在这里阅读了很多内容。

一个多星期以来,我一直在尝试寻找以下问题的解决方案,但没有成功。 我有一个 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/

相关文章:

java - 在 relativeLayout 中将 View 设置在中心下方几处

ios - 如何一次将事件从外滚动传递到内滚动

Android 自定义微调适配器不显示内容

android - 如何从 ArrayAdapter 中的 onClickListener 重新加载 Activity

java - Android Xml Pull 解析器错误 - SitesDownloadTask.onPostExecute

android - 防止背景调整大小并防止在 Activity 开始时自动聚焦

java - Android 多线程

android - 在 android 中流式传输和播放 .m4a 流(Itunes 预览 Url)

html - scroll-behavior、overflow-anchor 和 overflow-y CSS 属性应该设置在 html 还是 body 上?

css - 修复了 Horz 滚动网站上 Div 下方的页脚