Picasso、Glide及Fresco对比

Picasso:

是Square公司开源的项目,功能强大调用简单:

//用法1:加载全尺寸的图片到内存,然后让GPU来实时重绘大小
Picasso.with(this) .load(“http://**.jpg“) .into(ivImgPicasso);
//用法2:需要去设置ImageView大小值
Picasso.with(this) .load(“http://**.jpg“) .resize(768, 432) .into(ivImgPicasso);
//用法3:按统一比例缩放图片。与Glide加载图片内存开销差不多。
Picasso.with(this) .load(“http://**.jpg“) .fit() .centerCrop() .into(ivImgPicasso);

Glide:

 glide是谷歌员工开源的一个项目。用法是:Glide.with(this).load("url   图片文件   字节数组").into(imageView);

Glide与Picasso的对比:

1,内存:加载一张图片Picasso的内存开销要远大于Glide。

2,Image质量细节:Glide默认的是Bitmap格式是RGB-565;Picasso默认ARGB_8888格式。因此Glide加载的图片没有Picasso那么平滑,但是很难察觉。

3,磁盘缓存:Picasso缓存的是全尺寸的。Glide会根据ImageView的大小缓存尺寸相同的。

     让Glide即缓存全尺寸的,有缓存其他大小的方式:

Glide.with(this) .load(“http://**.jpg“).diskCacheStrategy(DiskCacheStrategy.ALL) .into(ivImgGlide);

Glide的这种方式优点是加载显示非常快。而Picasso的方式则因为需要在显示之前重新调整大小而导致一些延迟,Glide比Picasso快,虽然需要更大的空间来缓存。

4,Glide可以加载git,Picasso不能。

总结:

(1)Glide比Picasso加载速度快,但Glide比Picasso需要更大的空间来缓存;

(2)Glide加载图像及磁盘缓存的方式都优于Picasso,且Glide更有利于减少OutOfMemoryError的发生;

(3)Glide可以加载Gif动图,Picasso不可以加载动图

(4)Picasso加载的图片比Glide加载的图片平滑(可忽略不计)

(5)Picasso不支持视频缩略图,Glide支持。
 

Fresco:

Fresco是facebook开源的图片库。Glide有的功能Fresco都有(都可以加载缩略图,可以加载gif)。

与glide对比:

在加载静态图片的时候三个图片库性能差不多,Glide要稍微优秀一点。在加载动态图的时候(Picasso不支持gif)Glide的java heap是Fresco的一倍,所以OOM的风险比Fresco大很多。但是Fresco占用的native heap要比Glide占用的 native heap要大的多,接近10倍。所以Fresco存在一定的风险,因为他的native heap有些恐怖。

Glide优缺点:

1,多种图片格式的缓存(原图片缓存和其他格式),适用更多的内容表现形式(gif   webp  缩略图 video)。Fresco也是只缓存原图片

2,加载速度快(因为缓存的图片规格多),内存开销小(rgb-565)

3,没有文件缓存 java heap比Fresco高

Fresco优缺点:

  1,最大的优势在于5.0以下(最低2.3)的bitmap加载。5.0以下系统,Fresco将图片放在一个特别的内存区域,大大减少OOM。

 2,适用于高性能加载大量图片。

 3,使用比较麻烦,包大。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值