Glide大战Picasso

博客转移到个人站点:
http://www.wangchengmeng.club/2018/02/04/Glide%E5%A4%A7%E6%88%98Picasso/

欢迎来吐槽

Picasso

介绍

首先Picasso是是Square公司开源的一个Android图形缓存库,使用起来非常简单,而且效率比较高

优点:
在adapter中回收和取消当前的下载;
使用复杂的图片压缩转换来尽可能的减少内存消耗;
自动的内存和硬盘缓存;
图形转换操作,如变换大小,旋转等,提供了接口来让用户可以自定义转换操作;
加载载网络或本地资源;
还解决了列表显示图片错位的问题,没显示的列表自动不加载图片

1、加载并显示网络图片

Picasso.with(context).load("http://www.baidu.com/
aaa.png").into(imageView);

2、转换图片以适应布局大小并减少内存占用

Picasso.with(context)
  .load(url)
  .resize(50, 50)
  .centerCrop()
  .into(imageView);

3、picasso提供了两种占位图片

Picasso.with(context)
.load(url)
.placeholder(R.drawable.user_placeholder)
.error(R.drawable.user_placeholder_error)
.into(imageView);

4、除了加载网络图片picasso还支持加载Resources, assets, files, content providers中的资源文件

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);

Picasso.with(context).load(new File(...)).into(imageView2);

5、使用的时候可以加上Picasso.noFade(); 这个方法立即显示,但还是没Glide快。

Glide

两者相似度达到90%之多,使用起来一样,只是Glide在实现的细节上更加优秀,个人更加喜欢Glide的使用

glide的使用:

Glide.with(context)  
.load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg")  
.into(ivImg);

glide修改参数配置:

修改缓存的配置(缓存位置,大小等)
地址:https://github.com/bumptech/glide/wiki/Configuration
两者对战
1、Glipde接收Activity和Fragment的context会自动转换,这样就可以跟Activity和Fragment的生命周期绑定在一起了,比如在
Activity的Pause状态下就停止加载,在Resume状态下就自动继续加载。而Picasso不行,只能接收Cntext参数

2、在缓存图片上:Glide默认采用的图片格式是RGB_565,而Picasso默认是RGB_8888,在消耗内存的情况下Glide会小两倍都不止,
当然你也可以给Glide设置格式为RGB_8888,图片效果  会好些,消耗内存还是比Picasso小很多。

在缓存图片的时候,Glide会将图样的图片不同大小的尺寸都缓存一份,但这样会多次去请求网络加载图片,可以改变这样的情况:

3、Glide.diskCacheStrategy(DiskCacheStrategy.ALL) 就是缓存全尺寸的图片(Picasso就是缓存全尺寸的图片),
在下次任何尺寸的imageview加载图片的时候只需要将全尺寸的图片从缓存中取出来,重新计算一次大小,然后缓存,这样就很快。
而Picasso在显示之前会重新计算一下大小就会有所延迟。

所以Glide比Picasso更快。但是需要比Picasso更大的缓存空间。

4、动画:

Glide可以配置图片显示的动画,而Picasso只有一种动画,
Glide还可以显示Gif动画,但是使用的时候需要谨慎,自己测试过,需要消耗大量的内存

5、库的大小:

picasso大概118k而gilde大概430k

6、方法的个数:

picasso--glide ===  840--2678
对于DEX文件65535个方法的限制来说,2678是一个相当大的数字了。建议在使用Glide的时候开启ProGuard。

总结

综上所述,这两个库在图片的加载缓存上都是比较优秀的,只是在细节体现上Glide更为优秀,两者各有个的优势,使用的时候看自己选择使用。
Glide更有利于减少OutOfMemory,且图片显示更快,但是需要更大的缓存空间。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值