因为项目几经转手,图片框架Picasso和Glide居然都用上了,为了减小体积也是为了统一,决定去掉一个,故比较一下两个框架的优劣,只选其中一种:
-
Glide和Picasso都是非常流行的图片加载框架
-
用法很很相似,笔者现在用的Glide是3.8,因为项目之中用的是这个,熟练之后在研究一下4.x
compile 'com.android.support:support-v4:27.1.1' compile 'com.github.bumptech.glide:glide:3.8.0'
使用很简单:
Glide.with(this).load("http://nuuneoi.com/uploads/source/playstore/cover.jpg") // .centerCrop() //.listener(listener) .into(imageView1);
同样Picasso的使用也很简单:
implementation 'com.squareup.picasso:picasso:2.71828'
Glide.with(context)
.load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg")
.into(ivImg);
新版的是这么用的:
Picasso.get().load("http://nuuneoi.com/uploads/source/playstore/cover.jpg")
.into(imageView2);
- Picasso老版本的只能使用activity的Context, 新版本的默认提供了一个PicassoProvider extends ContentProvider 用来获取getContext()
Glide可以使用任意的Context,比如activity,比如fragment。
但是对于新版的Picasso来说,应该不是问题了吧 - 默认的编码格式不同,Glide默认的是RGB_565, Picasso 默认是ARGB_8888,所以相对来说Picasso下载的图片占用内存要打一写,当然Glide可以更改编码格式为ARGB_8888
- 缓存内容不同。Picasso缓存的是没有经过裁剪的原图,而Glide缓存的是裁剪之后的图片,所以Glide占的内存可能要小一些。
- 加载速度。理论上来说是差不多的。从本地加载的时候Glide看起来可能会快一点,是因为不需要再次裁剪,而Picasso缓存的原图所以可能需要裁剪。
- Glide支持GIF图片,Picasso不支持。
- Glide的方法要比Picasso的多的多,所以jar体积也要相对打得多。
到底怎么使用,取决于你!但我决定用Glide
下一篇研究Glide的整体架构!
欢迎关注我的公众号: manong_xiaodong。 有大数据资料赠送哟,因为我最近也在学习大数据!欢迎一起学习!