FaceBook开源库Fresco

资料已经整理成了电子书欢迎进群284568173讨论学习使用

关于 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 支持

时间: 2024-10-18 01:26:02

FaceBook开源库Fresco的相关文章

Facebook 开源项目 Fresco 使用简介

1. 在Gradle中添加依赖 dependencies { compile 'com.facebook.fresco:fresco:0.1.0+' } 2. 在Application 初始化时调用 Fresco.initialize(context); 3. 在xml布局文件中, 加入命名空间: xmlns:fresco="http://schemas.android.com/apk/res-auto" 4. 加入SimpleDraweeView: <com.facebook.

Android Fresco图片处理库用法API英文原文文档2-2(Facebook开源Android图片库)

Android Fresco图片处理库用法API英文原文文档2-2(Facebook开源Android图片库) 这是英文文档的第二部分(2):DRAWEE GUIDE 由于第二部分内容多一些,所以分为2个文章发.方便大家查看. Using the ControllerBuilder SimpleDraweeView has two methods for specifying an image. The easy way is to just callsetImageURI. If you wa

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

在Facebook的Android客户端上快速高效的显示图片是非常重要的.然而多年来,我们遇到了很多如何高效存储图片的问题.图片太大,而设备太小.一个像素点就占据了4个字节数据(分别代表R G B和alpha).如果在一个480*800尺寸的手机屏幕上,一张单独的全屏图片就会占据1.5MB的内存空间.通常手机的内存都非常小,而这些内存被多种多样的app划分占用.在一些设备上,Facebook app虽然只有16MB,但是仅仅一个图片就占用了1/10的空间. 当你的app用完你的内存时会发生什么呢

【Android开发经验】FaceBook推出的Android图片加载库-Fresco

欢迎关注ndroid-tech-frontier开源项目,定期翻译国外Android优质的技术.开源库.软件架构设计.测试等文章 原文链接:Introducing Fresco: A new image library for Android 译者 : ZhaoKaiQiang 校对者: Chaossss 校对者: bboyfeiyu 校对者: BillionWang 状态 : 完成 在Android设备上面,快速高效的显示图片是极为重要的.过去的几年里,我们在如何高效的存储图像这方面遇到了很多

[翻译] POP Facebook的动画开源库

Pop is an extensible animation engine for iOS and OS X. In addition to basic static animations, it supports spring and decay dynamic animations, making it useful for building realistic, physics-based interactions. The API allows quick integration wit

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

FaceBook推出的Android图片加载库-Fresco 原文链接:Introducing Fresco: A new image library for Android 译者 :  ZhaoKaiQiang 校对者: Chaossss 校对者: bboyfeiyu 校对者: BillionWang 状态 :  完成 在Android设备上面,快速高效的显示图片是极为重要的.过去的几年里,我们在如何高效的存储图像这方面遇到了很多问题.图片太大,但是手机的内存却很小.每一个像素的R.G.B和a

Facebook开源的JavaScript库:React

React是Facebook开源的JavaScript库,采用声明式范例,可以传递声明代码,最大限度地减少与DOM的交互. React是Facebook开源的JavaScript库,用于构建UI.你可以在React里传递多种类型的参数,如声明代码,帮助你渲染出UI.也可以是静态的HTML DOM元素.也可以传递动态变量.甚至是可交互的应用组件.(文字来自JS开发者微博) 特点: 声明式设计:React采用声明范式,你可以轻松描述你的应用 高效:Reeact通过对DOM的模拟表现,最大限度地较少与

Android开发--Facebook酷炫开源库Shimmer使用

今天在上网的时候无意间看到了Facebook的Shimmer开源库,感觉很是酷炫,而且使用超方便,决定给大家介绍一下.Shimmer是Facebook提供的一项基于Java的library,它可以使Android中的所有View控件具有闪光的效果.该项目的GitHub项目托管地址,请猛戳https://github.com/facebook/shimmer-android 使用Shimmer 配置工程 首先,我们在GitHub上将该项目clone到本地: 接下来我们在Android studio

GitHub Top 100的Android开源库

本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择「Best Match」得到的结果,然后过滤了跟Android不相关的项目,所以排名并不具备任何官方效力,仅供参考学习,方便初学者快速了解当前一些流行的Android开源库. 1. React Native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native,