Android列表视图图片加载问题

Android列表视图图片加载问题,第1张

概述我有一个包含几个列表视图的应用程序.列表视图包含由图像视图和文本视图组成的项目.所有图像都在服务器上缩放大小,用于加载它们的模式如下所示:>实例化DrawableManager>在getView()方法中,我执行以下 *** 作:>将拇指uri和ImageView实例传递给DrawableManagersgetImageAsync方法>如

我有一个包含几个列表视图的应用程序.列表视图包含由图像视图和文本视图组成的项目.

所有图像都在服务器上缩放大小,用于加载它们的模式如下所示:

>实例化DrawableManager
>在getVIEw()方法中,我执行以下 *** 作:

>将拇指uri和ImageVIEw实例传递给DrawableManagers getimageAsync方法
>如果图像存在,该方法将首先查看SD卡,如果是这样,从SD卡加载并保存软参考更新imagevIEw drawable
>如果不存在于SD.从http获取并保存在SD(如果有足够的空间)上作为softreference并更新imagevIEw drawable.

当图像存在于SD卡上时,一切正常.但第一次(或使用没有SD卡的应用程序时)图像似乎在滚动时填充到错误的列表视图行中.当我停止滚动时,问题会在几秒钟后自行修复.

它几乎就像是ImageVIEw引用是汇集的还是其他东西.

有任何想法吗?

我还包括getVIEw方法:

public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {    VIEwHolder vh;    if (convertVIEw == null) {        convertVIEw = inflater.inflate(R.layout.informationrow, null);        vh = new VIEwHolder();        vh.imageVIEw = (ImageVIEw) convertVIEw.findVIEwByID(R.ID.rowinformationIcon);        vh.textVIEw = (TextVIEw) convertVIEw.findVIEwByID(R.ID.rowinformationTitleline);        convertVIEw.setTag(vh);    }    else {         vh = (VIEwHolder) convertVIEw.getTag();    }    Customcategory cc = items.get(position);    if (cc != null) {        vh.textVIEw.setText(cc.get_name());        if (cc.getMediaUrl() != null) {            _drawMgr.fetchDrawableOnThread(cc.getMediaUrl(), vh.imageVIEw);             vh.imageVIEw.setBackgroundDrawable(getResources().getDrawable(R.drawable.imageframe));        }        else {             vh.imageVIEw.setimageDrawable(getResources().getDrawable(R.drawable.trans4040));            vh.imageVIEw.setBackgroundDrawable(null);        }    }    return convertVIEw;}

解决方法:

这是ListVIEw使用的VIEw回收……

传递给getVIEw()的convertVIEw参数可以引用已滚动显示列表的显示部分的现有项目,并且可以重复使用以显示正在显示的项目.

所以,是的,相同的ImageVIEw将在您发布的代码中的多次下载中重复使用.在你的getVIEw()中你应该检查下载是否已经挂起并在不再需要时取消它(或者让它在某处完成到FIFO图像缓存,但是不要触摸现在最近需要的ImageVIEw-开始下载).

(一个替代的,懒惰的开发人员实现,假设无限的内存将忽略convertVIEw参数并在每次调用时实例化新的informationrow视图.不要那样做.:)).

总结

以上是内存溢出为你收集整理的Android列表视图图片加载问题全部内容,希望文章能够帮你解决Android列表视图图片加载问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1117580.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存