Android-Gridview图像在滚动时混合

Android-Gridview图像在滚动时混合,第1张

概述我有一个显示两个列imageviews的gridview.我正在使用异步任务加载这些图像(请参阅帖子LazyloadofimagesinListView)但是,当我滚动gridview时,位置中的图像混合在一起.例如第14个图像显示第1个图像,我认为视图试图在异步任务完成之前显示旧图像.我的代码:publicContent

我有一个显示两个列imagevIEws的grIDvIEw.我正在使用异步任务加载这些图像(请参阅帖子Lazy load of images in ListView)

但是,当我滚动grIDvIEw时,位置中的图像混合在一起.例如第14个图像显示第1个图像,我认为视图试图在异步任务完成之前显示旧图像.

我的代码:

    public Content getItem(int position) {        return contents.get(position);    }    public long getItemID(int position) {        return position;    }    @OverrIDe     public boolean hasStableIDs() { return true; }    public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {        thumbnail contentVIEw;        Content current = contents.get(position);        if (convertVIEw == null) {            contentVIEw = new thumbnail(mContext);          }        else {            contentVIEw = (thumbnail) convertVIEw;        }        contentVIEw.Title = current.getTitle();        contentVIEw.image = current.getimage();        contentVIEw.link = current.getlink();        contentVIEw.init();        return contentVIEw;    }

初始化功能

    TextVIEw TitleText = (TextVIEw)super.findVIEwByID(R.ID.TitleText);    TitleText.setText(Title);    ImageVIEw imageControl = (ImageVIEw)super.findVIEwByID(R.ID.thumbImage);    DrawableManager loadImage = new DrawableManager();              loadImage.fetchDrawableOnThread(imgurl, imageControl);

等待您的帮助

谢谢

解决方法:

这是由于资源重用而发生的.您应该做什么:

>首先,只需在getVIEw方法中为imageVIEw(contentVIEw.image.setimageResource(DEFAulT_RESOURCE))设置某种默认图像(过渡默认图片总比错误图片更好).
>为图像设置唯一标签,例如要加载的图像的位置或URL(contentVIEw.image.setTag(url)).
AsyncTask完成后,您可以使用一些检查方法,例如

String url=(String)imageVIEw.getTag();if (url.equals(mUrl)) { //mUrl can be transmitted to AsyncTask instance separately    mActivity.runOnUiThread(new Runnable() {    @OverrIDe    public voID run() {        imageVIEw.setimageDrawable(bmp);    });});}

这是必需的,因为适配器不会为N个项目的所有N个ImageVIEw分配内存.它仅存储可见项所需的数量和一些保留的ImageVIEw.因此,我们无法保证您存储的ImageVIEw参考在几秒钟之内就会成为真实的,因为它可能会变得不可见并被可见的对象重新使用.

总结

以上是内存溢出为你收集整理的Android-Gridview图像在滚动时混合全部内容,希望文章能够帮你解决Android-Gridview图像在滚动时混合所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1074856.html

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

发表评论

登录后才能评论

评论列表(0条)

保存