首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

listview异步加载图片并防止错位

android listview 异步加载图片并防止错位 网上找了一张图, listview 异步加载图片之所以错位的根本原因是重用了 convertView 且有异步操作....但当有异步下载时就有问题了,假设 Item1 的图片下载的比较慢,Item8 的图片下载的比较快,你滚上去 使 Item8 可见,这时 Item8 先显示它自己下载的图片没错,但等到 Item1 的图片也下载完时你发现...如果 Item1 的图片下载的比 Item8 的图片快, Item1 先刷上自己下载的图片,这时你滑下去,Item8 的图片还没下载完, Item8 会先显示 Item1 的图片,因为它们是同一快内存...,当 Item8 自己的图片下载完后 Item8 的图片又刷成 了自己的,你再滑上去使 Item1 可见, Item1 的图片也会和 Item8 的图片是一样的, 因为它们指向的是同一块内存。...null && imageView.getTag().equals(imageUrl)) { imageView.setImageBitmap(result); } 我参考网上资料写了一个 listview

86670
您找到你想要的搜索结果了吗?
是的
没有找到

Android ListView性能优化,异步加载图片

尤其是每个item里面中还有图片需要加载,数据源比较多,如果处理不好的话,在滑动ListView的过程中肯定会遇到卡顿的现象,做了这么久的开发,自己多少也摸索到了一些规律,接下来就给大家详细的介绍一下ListView...2.异步加载图片 我们在ListView中异步加载图片,可以使用一些第三方API来加载图片,比较好用的是ImageLoader,Xutils里面的BitmapUtils也可以。...3.设置LitView滑动时禁止加载图片 如果我们在滑动ListView的时候也要加载图片,那么滑动时肯定会卡顿 三、详解: 1.定义ListView 我们先看一下布局,item的每一项内容 <span...最后我们还可以设置ListView滑动时不加载图片 4.设置滑动不加载图片 ImageLoader已经给我们封装好了方法,我们只需要设置一下ListView滑动监听就可以了,看一下代码: <span style...至于图片就不给大家贴了,只要按照上面的方法做,你的ListView相信不会卡顿的。

90221

android之listview缓存图片(缓存优化)

下面提出一些优化: 1、采用线程池 2、内存缓存+文件缓存 3、内存缓存中网上很多是采用SoftReference来防止堆溢出,这儿严格限制只能使用最大JVM内存的1/4 4、对下载的图片进行按比例缩放...               th.printStackTrace();           }       }   /**      * 严格控制堆内存,如果超过将首先替换最近最少使用的那个图片缓存...FileCache(context);           executorService = Executors.newFixedThreadPool(5);       }   // 当进入listview...时默认的图片,可换成你自己的默认图片 final int stub_id = R.drawable.stub;   // 最主要的方法 public void DisplayImage(String...imageLoader.DisplayImage(url, imageView);   比如你的放在你的ListView的adapter的getView()方法中,当然也适用于GridView。

1.8K90

Flutter中ListView加载图片数据的优化

重要消息 网易云【玩转大前端】配套课程 EDU配套 教程 Flutter开发的点滴积累系列文章 *** 在使用ListView懒加载模式时,当ListView的Item中有图片信息时,在快速滚动过程中会大量的浪费流量与内存...在这里提出优化方案,当开始滚动时不加载图片,滚动结束后再加载图片,这个优化方案实现的效果如下图所示,在快速滑动列表数据时,图片未加载,运行内存无明显波动。...[在这里插入图片描述] 实现代码如下: class ListViewUsePage13 extends StatefulWidget { @override State<StatefulWidget...case OverscrollNotification: print("滚动到边界"); break; } return true; } ListView...buildListView() { return ListView.separated( itemCount: 10000, //子条目个数 ///构建每个条目

3.4K11

Android listView异步下载和convertView复用产生的错位问题

比如ListView滑动到第2行会异步加载某个图片,但是加载很慢,加载过程中ListView已经滑动到了第14行,且滑动过程中该图片加载结束。...Item图片显示闪烁 上面介绍的另外一种情况,如果第14行图片又很快加载结束,所以我们看到第14行先显示了复用的第2行的图片,立马又显示了自己的图片进行覆盖造成闪烁错乱。...比如ListView滑动到第2行会异步加载某个图片,但是加载很慢,加载过程中listView已经滑动到了第14行,且滑动过程中该图片加载结束, 第2行已不在屏幕内,根据上面介绍的缓存原理,第2行的view...行item图片显示错乱 这个显示错乱是指某行item显示了不属于该行item的图片。...2行的View,这时之前的图片加载结束,就会显示在第14行,造成错乱

1.3K70

Android ListView实现下拉顶部图片变大效果

本文实例为大家分享了Android ListView下拉顶部图片变大的具体代码,供大家参考,具体内容如下 在git上查看牛人的代码,发现是反编译别人的代码,还没加注释,代码也没有完全编译完整,所以这里我做的简单的注释...变量说明 这里变量包含了:自定义返回动画加速度、自定义动画线程、头部图片view,最后的y坐标,做好的比例,做大的比例等。...= INVALID_VALUE;//当前手指的Id private FrameLayout mHeaderContainer;//头部 private int mHeaderHeight;//头部图片的高度...private ImageView mHeaderImage;//头部图片 float mLastMotionY = INVALID_VALUE;//最后y坐标 float mLastScale...this.mHeaderContainer = new FrameLayout(paramContext);//头部 this.mHeaderImage = new ImageView(paramContext);//头部图片

91220

android ListView 嵌套 ListView

listview还未刷新完成,导致测量的高度不对,就会消失,像当前组已关闭这种,现在这个问题还没有想到办法解决的,试过比较多的方法,添加接口让子listview 刷新完成后再去更新父listview,但还是没有作用...listview是默认不显示的,当点击父listview去张开子listview,父listview应该会再次刷新,但子listview展开是可以的,然后下一次更新数据源的时候子listview又会自动关闭...,我猜应该是在刷新子listview的时候,父listview先更新完成,子listview的高度测量就没有对!...下面是我的源码 listview 嵌套listview都有个高度测量的问题,在更新的时候动态更新子listview就,下面是布局源码 <?...listView,GroupInfo groupinfo) { //获取listView的adapter ListAdapter listAdapter = listView.getAdapter

1.3K20

Android RecyclerView 复用错乱通用解法详解

写在前面: 在上篇文章中说过对于像 RecyclerView 或者 ListView 等等此类在有限屏幕中展示大量内容的控件,复用的逻辑就是其核心的逻辑,而关于复用导致最常见的 bug 就是复用错乱。...复用错乱的解决办法 本文的前半部分很简单的,以为关于复用错乱,RecyclerView 已经有他的前辈 ListView 替它踩了很多坑了。...虽然他们的复用逻辑是有差异的,例如 ListView 只有两层缓存,但是 RecyclerView 可以理解为有四层;ListView 缓存的单位是 view,而 RecyclerView 缓存的单位是...这样就发生了图片错乱。...,给 ImageView 设置一个默认图片,然后通过 setTag 方法,将 ImageView 和 图片的 url 一一对应起来,设置的时候再判断一下,这个 imageview 的 tag 和当时请求的

4.7K30

Android ListView异步加载图片乱序问题,原因分析及解决方案

比如说在ListView中加载图片,如果是同步加载图片倒还好,但是一旦使用异步加载图片那么问题就来了,这个问题我相信很多Android开发者都曾经遇到过,就是异步加载图片会出现错位乱序的情况。...那么今天我们就来具体深入分析一下ListView异步加载图片出现乱序问题的原因,以及怎么样对症下药去解决它。...项目建好之后第一个要解决的是数据源的问题,由于ListView中需要从网络上请求图片,那么我就提前准备好了许多张图片,将它们上传到了我的CSDN相册当中,然后新建一个Images类,将所有相册中图片的URL...,我们需要一个ListView来展示所有的图片。...有了这个操作保护之后,就可以把一些已经移出屏幕的无效的图片请求过滤掉,从而整体提升ListView加载图片的工作效率。 这是第二种解决方案。

1.6K100
领券