讨论学习使用

关于 Fresco

Fresco 是一个强大的图片载入组件。

Fresco 中设计有一个叫做 image pipeline
的模块。它负责从网络。从本地文件系统。本地资源载入图片。

为了最大限度节省空间和CPU时间,它含有3级缓存设计(2级内存,1级文件)。

Fresco 中设计有一个叫做 Drawees
模块,方便地显示loading图,当图片不再显示在屏幕上时,及时地释放内存和空间占用。

Fresco 支持 Android2.3(API level 9)
及其以上系统。

特性

内存管理

一个没有未压缩的图片。即Android中的Bitmap,占用大量的内存。大的内存占用势必引发更加频繁的GC。在5.0下面。GC将会显著地引发界面卡顿。

在5.0下面系统,Fresco将图片放到一个特别的内存区域。当然,在图片不显示的时候,占用的内存会自己主动被释放。这会使得APP更加流畅,降低因图片内存占用而引发的OOM。

Fresco 在低端机器上表现一样出色,你再也不用因图片内存占用而思前想后。

图片的渐进式呈现

渐进式的JPEG图片格式已经流行数年了,渐进式图片格式先呈现大致的图片轮廓,然后随着图片下载的继续,呈现逐渐清晰的图片,这对于移动设备,尤其是慢网络有极大的利好。可带来更好的用户体验。

Android 本身的图片库不支持此格式,可是Fresco支持。使用时。和往常一样。只须要提供一个图片的URI就可以,剩下的事情。Fresco会处理。

Gif图和WebP格式

是的,支持载入Gif图。支持WebP格式。

图像的呈现

Fresco 的 Drawees
设计,带来一些实用的特性:

•   自己定义居中焦点(对人脸等图片显示很有帮助)

•   圆角图,当然圆圈也行。

•   下载失败之后,点击重现下载

•   自己定义占位图。自己定义overlay, 或者进度条

•   指定用户按压时的overlay

图像的载入

Fresco 的 image pipeline
设计。同意用户在多方面控制图片的载入:

•   为同一个图片指定不同的远程路径,或者使用已经存在本地缓存中的图片

•   先显示一个低解析度的图片。等高清图下载完之后再显示高清图

•   载入完毕回调通知

•   对于本地图。如有EXIF缩略图。在大图载入完毕之前,可先显示缩略图

•   缩放或者旋转图片

•   处理已下载的图片

•   WebP 支持

FaceBook开源库Fresco的更多相关文章

  1. LOSF海量小文件问题解决思路及开源库

    "+++++++++++++++ LOSF 海量小文件存储和优化方案 +++++++++++++++++++++++++++++++++++++++++++++"一.问题产生原因以 ...

  2. Android Fresco (Facebook开源的图片加载管理库)

    Fresco是Facebook开源的一个图片加载和管理库. 这里是Fresco的GitHub网址. 同类型的开源库市面有非常多,比如Picasso, Universal Image Loader, G ...

  3. fackbook的Fresco (FaceBook推出的Android图片加载库-Fresco)

    [Android开发经验]FaceBook推出的Android图片加载库-Fresco   欢迎关注ndroid-tech-frontier开源项目,定期翻译国外Android优质的技术.开源库.软件 ...

  4. Facebook开源项目:我们为什么要用Fresco框架?

    (Facebook开源项目)Fresco:一个新的Android图像处理类库 在Facebook的Android客户端上快速高效的显示图片是非常重要的.然而多年来,我们遇到了很多如何高效存储图片的问题 ...

  5. (Facebook开源项目)Fresco:一个新的Android图像处理类库

    在Facebook的Android客户端上快速高效的显示图片是非常重要的.然而多年来,我们遇到了很多如何高效存储图片的问题.图片太大,而设备太小.一个像素点就占据了4个字节数据(分别代表R G B和a ...

  6. FaceBook推出的Android图片加载库-Fresco

    FaceBook推出的Android图片加载库-Fresco 原文链接:Introducing Fresco: A new image library for Android 译者 : ZhaoKai ...

  7. Facebook开源的JavaScript库:React

    React是Facebook开源的JavaScript库,采用声明式范例,可以传递声明代码,最大限度地减少与DOM的交互. React是Facebook开源的JavaScript库,用于构建UI.你可 ...

  8. 100个Github上Android开源库

    项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, ...

  9. GitHub上排名前100的Android开源库介绍(来自github)

    本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍,至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果,然后过滤了 ...

随机推荐

  1. CentOS6.8 RPM包安装快速zabbix22

    CentOS6.8 RPM包安装快速zabbix22 yum install -y epel-release # yum install -y httpd php php-devel mysql-se ...

  2. cce - 控制台中文环境

    语法 (SYNTAX) cce [-e program] 描述 (DESCRIPTION) 该程序是一个类似于 WZCE , yact 和 chdrv 的控制台中文平台.进入该环境后可以用“空格 + ...

  3. 自动交互脚本之expect使用记录

    之前一直没怎么用这个命令,意外用了一下,还不错,那这个是干嘛的呢 我们或多或少会远程登录其他服务器,需要执行某项任务,通常需要手动接入,输入密码啊,等等 那我们如何有效的自动执行呢,expect可以解 ...

  4. Vim中文编码问题

    1.影响中文编码的设置项 encoding(enc):encoding是Vim的内部使用编码,encoding的设置会影响Vim内部的Buffer.消息文字等.在 Unix环境下,encoding的默 ...

  5. CAD参数绘制批注(com接口)

    C#中实现代码说明: private void DrawComment() { MxDrawComment com = new MxDrawComment(); MxDrawPoint pt = ne ...

  6. expdp dblink

    客户端创建dblik create public database link [link_name] connect to {username} identified by "{passwo ...

  7. PHP 下基于 php-amqp 扩展的 RabbitMQ 简单用例 (三) -- Header Exchange

    此模式下,消息的routing key 和队列的 routing key 会被完全忽略,而是在交换机推送消息和队列绑定交换机时, 分别为消息和队列设置 headers 属性, 通过匹配消息和队列的 h ...

  8. java “==”和“equals”

    菜呀,只能记笔记了 ==:如果是基本数据类型,比较值,如果是引用类型,比较地址 equals:比较值

  9. CodeForces - 1020C C - Elections(贪心+枚举)

    题目: 党派竞争投票 有n个人,m个党派,这n个人每个人有一个想要投的党派的编号Pi,如果想要这个人改变他的想法,那么就需要花费Ci元钱. 现在你是编号为1的党派,如果你想要赢(你的票数严格大于其他党 ...

  10. 一次ORA-01555问题分析,及SQL优化。

    前言 客户说: 我在数据库上继续运行昨日的脚本,但发现有个子过程在运行10个小时后报错: 烦请协助看看... 错误码是:ORA-01555: snapshot too old: rollback se ...