Glide与Picasso比较

近来看了一下妹纸.gank.io这个开源项目,相见恨晚。

https://github.com/drakeet/Meizhi 

其中用到很多当今主流的开源框架,UI:Material Design & ButterKnife, 网络:RxJava & Retrofit,图片:Glide & Picasso。

初学者啊,纳闷Gilde和Picasso不都是加载图片的嘛,而且代码几乎都一样,为啥用两套呢?接下来 Glide vs Picasso。

1.加载:

Glide:

compile 'com.github.bumptech.glide:glide:3.7.0'


Picasso

compile 'com.squareup.picasso:picasso:2.5.2'


2.库的大小和方法的数

对比两个.jar 库的大小,Glide 要比 Picasso 大很多,基本上是 Picasso 的3.5倍。从库的大小,我们就可以预见,Glide 的方法必然是要大于Picasso 的,Picasso 的方法 总共有849个,而 Glide 的有2678个。


3.缓存方面

Glide先下载图片,然后改变图片的大小,以适应 imageView 的要求,然后缓存到本地。 所以如果你是下载同一张图片,但是设定两个不一样大小的 imageView, 那么Glide 实际上是会缓存两份。

Picasso则是完全不一样的做法,先下载图片然后缓存完整的大小到本地,比如说图片的大小是1080p的,之后如果我需要同一张图片,就会返回这张 full size 的,如果我需要resize,也是对这种 full size 的做 resize。


换个角度来看,这里不仅仅是缓存的问题,比如一个 ImageView 要改变它的大小,PIcasso 就只需要下载一次 full size 的图片,但是 Glide 实际上就不仅仅是下载一次了,它需要去单独下载然后改变大小适配 imageView,因为对于 Glide 来讲,需要缓存不同大小的同一张图片。


4.内存使用

Glide 默认是用的 RGB_555 的设定,Picasso 则是用的 ARGB _8888的设定。Picasso 是缓存的 full size 图片的大小,而 Glide 是加载已经改变大小后的图片,显而易见使用的memory会小很多。 这样可以减少 OutOfMemoryError 的可能性。

5.加载时间

Glide的这种方式优点是加载显示非常快。而Picasso的方式则因为需要在显示之前重新调整大小而导致一些延迟。


6.图片质量

Picasso加载的图片质量普遍优于Glide,这个自己没看出来,不过有大神做过测试,确实如此。这应该是app中使用图片浏览器时用Glide,而加载单张图片时用Picasso的一个重要原因吧。

7.比较蛋疼的一点

Glide可以加载GIF动态图,而Picasso不能。

总结:

Glide和Picasso各有优点,Glide加载图像以及磁盘缓存的方式都要优于Picasso,速度更快,并且Glide更有利于减少

OutOfMemoryError的发生,GIF动画是Glide的杀手锏。Picasso的图片质量更高。

大神们的建议是:如果使用Glide,将Bitmap格式换成 ARGB_8888、让Glide缓存同时缓存全尺寸和改变尺寸两种。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值