前不久看到有人在群里问,他使用glide加载图片,服务器上面的图片改变了,但是在客户端上面显示的还是改变前的图片,当时我没在意,后来想了一下,才想起来,glide自己内部是有自己的缓存机制,对于同一个url,服务器的图片改变了,但是它还是走的是自己的缓存
解决的方法: 就交给服务端的哥们,叫他们别只改图片,每次返回的请返回不一样的url就好了.这样就能完美的解决.
顺便说说对于Glide的简单理解.
图片加载框架,我常用的是picasso和glide,这2个使用方法基本上差不多,但是他们的缓存机制是不一样,
我之前使用picasso导致过oom后来我就好好研究了一下picasso,发现picasso他是将整个图片full size,完全下载下来了然后根据imageview尺寸,再去得到resize再去设置到imageview上面,他是直接将图片缓存到内存,所以会导致oom.后来我使用了LRUcache解决了oom,但是我发现glide他是先下载图片,然后改变图片大小,以适应imageview的要求,然后再缓存的,所以如果我们是下载同一张图片,但是是不用的尺寸,在内存中就会存在2份Glide默认使用的是RGB-555的设定,而picasso是ARGB_8888的设定,ARGB清晰度肯定是高一些,第一次加载图片的时候picasso是将full size加载到内存中而glide是需要改变图片的大小然后设置到imageview这个就会消耗时间,在这里glide会消耗时间,但是在我们加载到内存中之后,glide显示速度就会比picasso快,Picasso从缓存中拿到的图片,还要先去 resize 后,然后设定给 imageView,而gilde就直接设置给imageview.还有就是glide可以加载GIF图片,picasso不能
纯理论,图片处理框架也没什么好说的,拿来就可以用简单粗暴,不过还是要注意的是它们的特点,不然就会遇到坑,
对于一些使用,推荐一个帖子 http://www.jianshu.com/p/c9efd313e79e