目前网上存在好多图片加载框架,主流的框架有Volley、ImageLoader、fresco、Pisasso、glide,但是fresco无疑是最强大的一个图片加载框架,fresco是facebook推出的一款图片加载框架,它的诸多特性:内存管理、图片加载、以及图片的的渐进式加载和动图加载使得它一经推出收到许多公司的青睐。
fresco框架主要主要由三部分组成:DraweeView、DraweeHierarchy、DraweeController,其中DraweeController通过管理ImagePipeLine实现对于图片的管理,ImagePipeLine采用三级缓存,二级内存缓存、一级磁盘缓存,DraweeHierarchy主要用来储存一些视图数据,DraweeController内部通过DraweeHolder用来组织管理DraweeHierarchy与DraweeView。
fresco采用MVC架构将三部分组织起来:
Model: DraweeHierarchy用于组织和维护最终绘制和呈现的 Drawable对象
View: DraweeView用于显示视图
Controller: DraweeController负责与Imagepipeline交互
接下来我先结合RecyclerView给大家简单介绍下fresco的使用:
首先我们在项目Bulder.gradle中引入fresco的包
接下来就上代码了:
首先初始化fresco,这个过程在Application中初始化,fresco也提供了两种初始化的方法我们可以自由选择,其中双参属的可以用来配置ImagePipeLine的参数。
initialize(Context context)
initialize(Context context, ImagePipelineConfig imagePipelineConfig)