picasso
glide
虽说看上去都一样,但是Glide更易用,因为Glide的with方法不光接受Context,还接受Activity 和 Fragment。 Activity 和 Fragment作为参数的好处:图片加载会和Activity 和 Fragment的生命周期一致 。比如在pause状态时暂停加载,resumed时又重新加载。建议传参的时候传Activity 和 Fragment
picasso默认的是ARGB_8888glide默认Bitmap格式是RGB_565 当然我们也可以创建一个新的GlideMoudle将bitmap格式转换成ARGB_8888
Glide
1.图片缓存->媒体缓存 不仅是一个图片缓存,它支持 Gif、WebP、缩略图。甚至是 Video,所以更该当做一个媒体缓存。 2.支持优先级处理 3.与 Activity/Fragment 生命周期一致,支持 trimMemory Glide 对每个 context 都保持一个 RequestManager,通过 FragmentTransaction 保持与 Activity/Fragment 生命周期一致,并且有对应的 trimMemory 接口实现可供调用。
picasso
1.自带统计监控功能(支持图片缓存使用的监控,包括缓存命中率、已使用内存大小、节省的流量等) 2.支持优先级处理(每次任务调度前会选择优先级高的任务,比如 App 页面中 Banner 的优先级高于 Icon 时就很适用) 3.支持延迟到图片尺寸计算完成加载 4.支持飞行模式、并发线程数根据网络类型而变 5.“无”本地缓存 (无”本地缓存,不是说没有本地缓存,而是 Picasso 自己没有实现,交给了 Square 的另外一个网络库 okhttp 去实现,这样的好处是可以通过请求 Response Header 中的 Cache-Control 及 Expired 控制图片的过期时间。)
将ImageView调整成不同大小,但不管大小如何Picasso只缓存一个全尺寸的。Glide则不同,它会为每种大小的ImageView缓存一次。