引言
前面我们已经讲解了老牌图片加载框架Universal-Image-Loader,讲解了它的使用,并分别从图片三级缓存的角度和缓存Lru算法角度详细分析了源码,还给大家做出了总结,不清楚的可以去 安卓面试系列–Universal-Image-Loader图片加载框架和 安卓面试系列–OOM异常(二)这两篇博客中看看。今天我们来讲另外两个图片加载框架,Picasso和Glide,这两者非常像,所以我们放在一起讲。
导入库
Picasso:
compile 'com.squareup.picasso:picasso:2.5.1'
Glide:
compile 'com.github.bumptech.glide:glide:3.5.2'
基本使用
Picasso:
Picasso.with(context)
.load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg")
.into(ivImg);
Glide:
Glide.with(context)
.load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg")
.into(ivImg);
虽然两者看起来一样,但是Glide更易用,因为Glide的with方法不光接受Context,还接受Activity 和 Fragment,Context会自动的从他们获取。
将Activity或者Fragment作为with()的参数的好处是:图片加载会和Activity/Fragment的生命周期保持一致。比如在pause状态停止加载,在resume状态重新加载。所以建议把activity或者fragment作为参数传递给Glide,而不是Context。
内存缓存
Glide加载图片默认使用的是RGB_565,