码迷,mamicode.com
首页 > 移动开发 > 详细

【Android】ListView、RecyclerView异步加载图片引起错位问题

时间:2015-06-10 15:32:36      阅读:549      评论:0      收藏:0      [点我收藏+]

标签:

今天在RecyclerView列表里遇到一个情况,它包含300条数据,每项包含一个图片,发现在首次载入时,由于本地没图,请求网络的时候;快速滑动导致了图片错位、闪烁的问题。

原理的话有一篇已经说的很清楚了,大家可以参考下

下面是讲讲实际使用中,是怎么解决错位的问题。

一般错位都是发生在耗时的http请求上面,因此,针对每次图片请求

发起前

1:先将图片预设为本地一个占位图片。(重要!很多错位情况在于复用了其他位置的图片缓存,而当前图片迟迟加载不出来,导致当前图片错位。所以解决之道是先用本地占位图片,快速刷新当前图片。等加载完毕之后,就可以替换掉占位图片了。)

2:通过ImageView.setTag,把url记录在图片内部。

3:把url放进一个请求队列,(这是避免图片很大,请求耗时很长,重复发起url请求)

发起中

1:如果请求队列存在url,则返回

发起后

如果当前url和第一步ImageView.getTag一致,则用新的数据源更新图片。

否则返回。

 

如果是重复使用的图片,最好就是访问之后,写入到本地存储上,避免耗时网络请求。

 

【Android】ListView、RecyclerView异步加载图片引起错位问题

标签:

原文地址:http://www.cnblogs.com/kimmy/p/4565995.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!