Frecso学习
最近学习了下Facebook的Fresco。
地址在这里:项目官方地址
里面可以看到官方的中文说明、以及GitHub上的托管代码。
有一篇关于Fresco结构和运行机制的文档:请点击这里.
推荐一篇译文。
简要介绍
基本上可以理解为:
- FaceBook构建了DraweeView来替代ImageView,使用起来也和使用ImageView很接近;
- 封装了一整套的Uri显示图片的机制;
- Native管理图片内存,绕过了JVM,单独写了一套内存管理系统。
一些比较麻烦的点
Fresco目前还处于发展中,还存在一些使用上不是很好的地方,例如:
-
不太容易设置加载时的占位图(placeholder)。
目前需要每一个View独立设置,这很不友好。
有些情况下,我们需要动态设置占位图,但是这需要重新setHierarchy,多次setHierarchy会有比较大的开销。ide -
不太容易根据url随时获取缓存过的图片。
有的时候,我们希望获取到图片,但是不要第一时间就展示出来,而只是缓存下来,在制定的时机再触发显示。
目前还没有找到比较方便的方式。如果大家知道,可以先告诉我.
官方关于占位图的说法是:
占位图(Placeholde)
在调用setController 或者 setImageURI 之后,占位图开始显示,直到图片加载完成。
XML 中属性值: placeholderImage
Hierarchy builder中的方法: setPlaceholderImage
Hierarchy method: setPlaceholderImage
默认值: a transparent ColorDrawable
默认缩放类型: centerInside。