图片显示框架(一)

比较常见的几个框架

Universal-Image-Loader      Glide     Fresco     Picasso

框架概要

Universal-Image-Loader

优点:
作者是大名鼎鼎的nostra13,UIL使用方便,而且自有多种缓存策略,如最大尺寸先删除、时间最久删除等,使用它,
基本上不需要考虑太多的问题,可以把精力节省下来投入到开发的其他地方。另外,UIL还支持图片下载进度的监听,如果你有特殊需求,
则可以在图片开始下载前、刚开始下载等各个时间段来做一些额外的事情,非常方便。而且UIL可以在View滚动的过程中暂停图片的加载
,有利于提升界面的流畅度
缺点:
作者(2015/11/27)宣布不再维护这个项目

Picasso

优点:
来自于开源界名气很大的Square公,总体来看它比较小巧,但也有着一些自己的特色。比如,很特别的拥有统计功能,可以知道使用了多少
内存、缓存命中如何,另外它本身没有什么缓存策略,而是依赖所用的网络库的缓存策略——嗯,其实就是依赖了OkHttp了。Picasso使用起
也是比较简单的。
缺点:
Glide比它更优秀,而且使用起来几乎是一样的……

Glide

优点:
来自于bumptech,被Google官方所推荐,甚至在许多Android的原生应用中都采用了Glide来加载图片,可见其受推崇的程度。Glide不仅
支持常见的jpg和png格式,还能显示gif动画,甚至是视频,换言之它已经不仅仅是一个普通的图片加载库了,而是一个多媒体库。另外一个
优势是,Glide在内存方面的表现相当出色,首先它的图片默认格式是RGB565,要比ARGB8888节省更多内存,而且它缓存的不是原始图片,
而是缓存了图片的实际大小——比如加载的图片是1920*1080的大小,而在你的App中,显示该图片的ImageView大小只有1280*720,那么
Glide就会很聪明的自动缓存1280*720大小的图片。

Fresco

优点:
这个可以称为是Android平台上目前最为强大的图片加载库了,来源于地球人都知道的Facebook公司。与Glide一样,Fresco也是支
持gif动画显示,而且在内存方面的表现更是无敌。由于将图片放在Ashmem(匿名共享内存)中,大大降低了App的内存占用(因为Ashmem没
有被统计到App的内存使用里),再加上各种神优化,使得Fresco基本上告别了OOM,而且Fresco的图片直接显示为ARGB8888这种最高质量
的级别,即使是在这种高质量的情况下依然保证了比其他库更少的内存占用,不得不佩服Facebook的实力。而且类似于进度监听、缓存策略等,
也是应有尽有,总之作为一个图片加载库,Fresco在功能和性能方面已经趋于完美了。

Volley

Google官方出品,质量其实也只能算是马马虎虎了,事实上更愿意把它当成是一款网络库

框架的选择

如果是新上马的项目,那么UIL由于不再维护、Picasso基本被Glide全方位超越,我推荐使用Glide或Fresco。如果你的App里,图片特别多,
而且都是很大、质量很高的图片,而且你不太在乎App的体积(这可能吗?),那么Fresco就是很好的选择了,而Glide相比较Fresco要轻量一些,
而且是Google官方推荐,所以在多数时候,会是开发者的首选。话说回来,如果你非常在意App的体积,不肯让App多增加多余的1KB,那么,也许自
己实现一个图片加载库也是不错的选择。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值