美文网首页
Fresco 牛逼之处

Fresco 牛逼之处

作者: Herlo | 来源:发表于2017-02-06 10:21 被阅读125次

Fresco 出身名门,功能强大,应该是目前来说最为牛逼的图片加载框架。
内存管理:图片解压后,Bitmap会占据大量内存,在5.0以下的系统中会引发系统大量的GC操作,GC操作会引起界面卡顿,Fresco把Bitmap放在AshMem 匿名共享内存中,这样就不会引起GC.并且图片不显示的时候,占用的内存会被释放。
PipeLine:主要是起到了一个图片加载的功能,大概的流程如下 先看内存中是否有Bitmap如果有的话就直接使用,如果没有就看内存中有没有未解压的图片存在,如果有解压后,返回一个Bitmap对象然后把Bitmap写进内存中去。没有的话就去看磁盘,磁盘没有再去下载。三级缓存,两级内存一级磁盘。第一级缓存就是保存bitmap,第二级缓存保存在内存,但是没有解码,使用时需要界面,第三级缓存就是保存在本地文件,同样文件也未解码,使用的时候要先解码啦!


20161112182234503.jpg

Drawees:
负责图片的呈现。它由三个元素组成分别是:
DraweeView 继承于 View, 负责图片的显示。
DraweeHierarchy 用于组织和维护最终绘制和呈现的 Drawable 对象。
DraweeController 负责和ImagePipeline的交互,可以创建一个这个类的实例,来实现对所要显示的图片做更多的控制。
Fresco的支持WEBP的显示,和Gif动画以及WEBP动图的显示。
gif图片,其实跟显示图片没什么差,主要是动态图片涉及到的动画的停止与播放,如果只是单纯的试用一下,那就直接在controller里面设置setAutoPlayAnimation为true,如果你想手动监听就new一个ControllerListener里面手动控制

当我们要从服务器端下载一张高清图片,图片比较大,下载很慢的情况下有些服务器会提供一张缩略图,同样的Fresco也支持这种方法,在controller中提供了两个不同的方法setLowResImageRequest和setImageRequest,看到方法名你应该明白了怎么用

上面谈到的保存的很多内容都未解码,这也是fresco默认使用3个线程的原因,一个线程用来加载uri,一个线程用来解码,最后一个你知道它做什么,其余你想了解的东西自己去官网找找。

相关文章

  • Fresco 牛逼之处

    Fresco 出身名门,功能强大,应该是目前来说最为牛逼的图片加载框架。内存管理:图片解压后,Bitmap会占据大...

  • 手机的牛逼之处

    手机手机真好玩, 啥都能买卖。 游戏游戏真入迷, 一天不玩浑身难受。 微信真有意思, 各种聊(撩)。 (我终于不用...

  • centos6安装nginx

    nginx的牛逼之处就不用多说了,反正一个字:牛逼! 先安装编译工具 yum -y install gcc gcc...

  • 装逼

    裝逼不牛逼 牛逼不装逼 牛逼要裝逼 装逼真牛逼

  • [ionic5+react] 2. Ionic React Ho

    Ionic React Hooks 例子 Hooks的牛逼之处,在于从访问Capacitor APIs和设置清楚减...

  • 我想和你聊聊写出「春风十里不如你」的那个冯唐

    每个牛逼的人,都要有个笃定的核,这样在宇宙间才不易被风吹散。 能说出这句话的人,指定是有牛逼之处的。很多现世流行的...

  • AFURLRequestSerialization 观后感

    这个类看了一下,信息量很大,然后学习一下他的牛逼代码写法 牛逼之处:1.在类中设置一些数据(就是NSURLRequ...

  • 牛逼牛逼牛逼

    有一天, 我在墨爾本城區的一家泰國人餐廳吃飯,隔壁桌子吃飯的是一家多民族家庭,先生估計是西南歐洲某個民族的...

  • 今年的双十一,好像有点不一样。

    今年双十一比去年更疯狂,3分钟100亿。 每年双十一过后,都有一大堆文章来论证双十一的各种牛逼之处和不足之处。牛逼...

  • 区块链技术的牛逼之处

    区块链这个词虽不是新词,但绝对会成为 2018 年最火的词之一。从正月初二“3点钟无眠区块链”刷爆朋友圈之后,关于...

网友评论

      本文标题:Fresco 牛逼之处

      本文链接:https://www.haomeiwen.com/subject/sfpyittx.html