Glide和Picasso的优缺点比较

picasso和Glide结构设计

  • picasso
    这里写图片描述

  • glide
    这里写图片描述

picasso和Glide加载图片代码使用结构

  • 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。
Activity 和 Fragment作为参数的好处:图片加载会和Activity 和 Fragment的生命周期一致 。比如在pause状态时暂停加载,resumed时又重新加载。建议传参的时候传Activity 和 Fragment

picasso和Glide图片格式

这里写图片描述

  • picasso默认的是ARGB_8888
  • glide默认Bitmap格式是RGB_565
    当然我们也可以创建一个新的GlideMoudle将bitmap格式转换成ARGB_8888

picasso和Glide各自亮点

  • 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 控制图片的过期时间。)

picasso和Glide内存需求区别

我更喜欢Glide,因为它远比Picasso快,虽然需要更大的空间来缓存。

picasso和Glide缓存区别

  • Picasso和Glide在磁盘缓存策略上有很大的不同。Picasso缓存的是全尺寸的,而Glide缓存的是跟ImageView尺寸相同的。

将ImageView调整成不同大小,但不管大小如何Picasso只缓存一个全尺寸的。Glide则不同,它会为每种大小的ImageView缓存一次。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值