1、概述
FrescoSupport是基于Facebook开源库Fresco而包装的一个管理类。
2、Fresco简介
Fresco 是一个强大的图片加载组件,它设计有一个叫做 image pipeline 的模块,负责从网络,从本地文件系统,本地资源加载图片。且包含3级缓存机制(2级内存,1级文件)。Drawees 模块负责图片的显示。
2.1 Fresco特性
1、在5.0以下系统,Fresco将图片放到一个特别的内存区域(Ashmem)。当然,在图片不显示的时候,占用的内存会自动被释放。
2、支持渐进式图片格式:先呈现大致的图片轮廓,然后随着图片下载的继续,呈现逐渐清晰的图片。
3、支持加载Gif图,支持WebP格式
2.2 Drawees
Drawees支持的特性如下:
自定义居中焦点(对人脸等图片显示非常有帮助)
圆角图,当然圆圈也行。
下载失败之后,点击重现下载
自定义占位图,自定义overlay, 或者进度条
指定用户按压时的overlay
2.3 image pipeline
image pipeline 的设计,允许用户在多方面控制图片的加载:
为同一个图片指定不同的远程路径,或者使用已经存在本地缓存中的图片
先显示一个低解析度的图片,等高清图下载完之后再显示高清图
加载完成回调通知
对于本地图,如有EXIF缩略图,在大图加载完成之前,可先显示缩略图
缩放或者旋转图片
处理已下载的图片
WebP 支持
2.4 官方文档
官方maven依赖,默认使用第一个依赖就好,使用官网的网络层;第二个依赖用来吧Android网络层替换成OKHttp。
dependencies {
compile 'com.facebook.fresco:fresco:0.6.0+'
compile 'com.facebook.fresco:imagepipeline-okhttp:0.6.0+'
}
3 FrescoSupport使用
FrescoSupport相对简单,只是在Fresco上的简单封装。
其中提供了一个Fresco的通用配置类FrescoConfig,一般的使用足够,需要定制的请参考此文件以及Fresco官网。
FrescoManager为静态管理类,提供了一个初始化方法init
,默认不带参数的init方法使用上面提供的标准配置文件初始化。当然可以传入一个自己的配置文件ImagePipelineConfig,定制自己特色的初始化需求。
4 FrescoSupport地址
svn地址 http://200.200.200.40/svn/repositories/android/code/trunk/maven/FrescoSupport
maven地址 com.android.common:FrescoSupport:1.0.0