在前面的文章中,我们介绍过在RN中Android如果处理Gif格式的图片。
参考:http://blog.csdn.net/codetomylaw/article/details/52280828
我们是把图片切成n张,然后利用定时器去轮播图片。
这种方案存在的问题:
1、需要预加载n张图片,哪怕页面最后不使用gif,n张图片也会被加载到内存;
2、需要自己处理定时器逻辑;
有没有什么更好的方式呢?
好,我们今天再介绍另一种方式。
先说使用方法:
在build.gradle 中加入:
compile 'com.facebook.fresco:animated-gif:0.13.0'
然后就可以直接使用了,对,就这么简单。
<Image source={ {uri:loadgif}} style={ {width:20,height:20}}/>
Fresco是一个强大的图片加载组件,官方网址:http://www.fresco-cn.org/ 中文文档,很方便查阅。
Image Pipeline
Fresco 中设计有一个叫做 Image Pipeline 的模块。它负责从网络,从本地文件系统,本地资源加载图片。为了最大限度节省空间和CPU时间,它含有3级缓存设计(2级内存,1级磁盘)。