图片显示框架(一)
2016-08-16 10:31
274 查看
比较常见的几个框架
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,那么,也许自 己实现一个图片加载库也是不错的选择。
相关文章推荐
- 项目实例改编:利用structs2的action 实时显示图片、pdf和其他内容的框架抽取。
- 基于Volley框架的图片渐变显示alpha动画
- Android 获取并显示远程图片 Picasso框架的使用
- 使用第三方框架Glide显示网络图片
- 图片显示框架(二)
- [VB.NET].NET精简框架下用VB.NET怎么实现在picturebox上显示不同图片???
- C++开发人脸性别识别教程(9)——搭建MFC框架之显示图片
- 在 MFC 框架中,有什么方法能直接将 OpenCV 2.0 库中 Mat 格式的图片传递到 Picture Control(图片控件)显示?
- XUtils框架之显示网上图片
- EasyX 框架实现透明图片显示的 trick
- 2013.11.28 Base64编码后的图片信息在JSP页面中的显示[JFinal框架项目]
- Android 开源框架Universal-Image-Loader完全解析(五)- 从代码分析Android-Universal-Image-Loader的图片加载、显示流程
- Android 获取并显示远程图片 Picasso框架的使用(二)
- 01.LoT.UI 前后台通用框架分解系列之——小图片背景全屏显示(可自动切换背景)
- C++开发人脸性别识别教程(9)——搭建MFC框架之显示图片
- ssh三大框架简单整合,struts2整合JasperReport报表、图表,解决HTML显示图片不出来,PDF中文不显示的问题
- Android 获取并显示远程图片 Picasso框架的使用(一)
- 使用自定义的item、Adapter和AsyncTask、第三方开源框架PullToRefresh联合使用实现自定义的下拉列表(从网络加载图片显示在item中的ImageView)
- OpenCV在MFC框架下显示图片问题
- 网络图片缓存显示框架之universal-image-loader-1.9.1-with-sources