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.drawee.view.SimpleDraweeView

android:id="@+id/my_image_view"

android:layout_width="20dp"

android:layout_height="20dp"

fresco:placeholderImage="@drawable/my_drawable"

/>

5. 在Java代码中设置图片路径

draweeView.setImageURI("http://site.com/uri");

6. 参数说明

<com.facebook.drawee.view.SimpleDraweeView

android:id="@+id/my_image_view"

android:layout_width="20dp"   // 不支持wrap_content
如果要设置宽高比, 需要在Java代码中指定setAspectRatio(1.33f);

android:layout_height="20dp"    // 不支持wrap_content

fresco:fadeDuration="300"

fresco:actualImageScaleType="focusCrop"
// 设置图片缩放. 通常使用focusCrop,该属性值会通过算法把人头像放在中间

fresco:placeholderImage="@color/wait_color"
// 下载成功之前显示的图片

fresco:placeholderImageScaleType="fitCenter"

fresco:failureImage="@drawable/error" // 加载失败的时候显示的图片

fresco:failureImageScaleType="centerInside"

fresco:retryImage="@drawable/retrying" // 加载失败,提示用户点击重新加载的图片(会覆盖failureImage的图片)

fresco:retryImageScaleType="centerCrop"

fresco:progressBarImage="@drawable/progress_bar"
// 提示用户正在加载,和加载进度无关

fresco:progressBarImageScaleType="centerInside"

fresco:progressBarAutoRotateInterval="1000"

fresco:backgroundImage="@color/blue"

fresco:overlayImage="@drawable/watermark"

fresco:pressedStateOverlayImage="@color/red"

fresco:roundAsCircle="false" // 是否设置圆圈

fresco:roundedCornerRadius="1dp" // 圆角角度,180的时候会变成圆形图片

fresco:roundTopLeft="true"

fresco:roundTopRight="false"

fresco:roundBottomLeft="false"

fresco:roundBottomRight="true"

fresco:roundWithOverlayColor="@color/corner_color"

fresco:roundingBorderWidth="2dp"

fresco:roundingBorderColor="@color/border_color"

/>

7. 修改图片尺寸

Uri uri = "file:///mnt/sdcard/MyApp/myfile.jpg";

int width = 50, height = 50;

ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)

.setResizeOptions(new ResizeOptions(width, height))

.build();

PipelineDraweeController controller = Fresco.newDraweeControllerBuilder()

.setOldController(mDraweeView.getController())

.setImageRequest(request)

.build();

mSimpleDraweeView.setController(controller);

自动旋转

ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)

.setAutoRotateEnabled(true)

.build();

中文版API指南

http://fresco-cn.org/docs/index.html#_

时间: 2024-10-31 11:51:52

Facebook 开源项目 Fresco 使用简介的相关文章

facebook开源项目集合

Facebook的开源大手笔 1. 开源Facebook平台代码 Facebook在2008年选择将该平台上的重要部分的代码和应用工具开源.Facebook称,平台已经基本发展成熟,此举可以让开发者更全面地理解整个Facebook平台,更容易地为Facebook开发应用软件,并可以回报社区. 该项目代号为“FBOpen”,其中包含了实现Facebook平台的一些基础设施.功能等,如API架构.FQL分析器.FBML分析器.FBJS,以及许多常用方法和标签的实现,代码基于PHP.这意味着其他开发者

github开源项目目录规范(简介)

此为前端开发团队遵循和约定的开源项目目录规范,意在实现开源项目目录结构的一致性. 说明 文档中使用的关键字「MUST」,「MUST NOT」,「REQUIRED」,「SHALL」,「SHALL NOT」,「SHOULD」,「SHOULD NOT」,「RECOMMENDED」,「MAY」和「OPTIONAL」在RFC2119中被说明. 还未定稿,对规范中提及的点有不赞同的欢迎提出 issues(请添加目录规范标签)讨论. 目录规范 参加的目录结构为: . ├── .editorconfig ├──

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

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

FaceBook开源库Fresco

资料已经整理成了电子书欢迎进群284568173讨论学习使用 关于 Fresco Fresco 是一个强大的图片加载组件. Fresco 中设计有一个叫做 image pipeline 的模块.它负责从网络,从本地文件系统,本地资源加载图片.为了最大限度节省空间和CPU时间,它含有3级缓存设计(2级内存,1级文件). Fresco 中设计有一个叫做 Drawees 模块,方便地显示loading图,当图片不再显示在屏幕上时,及时地释放内存和空间占用. Fresco 支持 Android2.3(A

开源项目Universal Image Loader for Android 说明文档 (1) 简介

 When developing applications for Android, one often facesthe problem of displaying some graphical content from the Internet. So, youshould provide image loading from the Web in an Android app, their processingand displaying with limited memory aga

前端技术-svg简介与snap.svg.js开源项目的使用

前言-为什么学习snap.svg.js 前阵子webAPP的技术群里有人感觉到svg+animate的形式感觉很炫,矢量图任意放大且不需要下载图片,并且在手机端效果流畅. (矢量图与位图最大的区别是,它不受分辨率的影响.可以任意放大或缩小图形而不会影响出图的清晰度, 可以按最高分辨率显示到输出设备上,位图即相机拍出来的,由像素块组成的图片. svg代码可使用Adobe公司的AI软件导出,该Snap.svg也是Adobe的开源项目) 虽然svg.animate并不新鲜,但由于svg的代码是由PC计

直接拿来用!Facebook移动开源项目大合集

直接拿来用!Facebook移动开源项目大合集 时间:2014-04-22 15:37 作者:唐小引 随着iOS依赖管理工具CocoaPods和大量第三方开源库成熟起来,业界积累了大量的优秀开源项目.不久之前,Facebook推出了旗下移动新闻阅读应用Paper,便动用了将近100个第三方开源库,极大地简化了自己的应用开发任务. 移动开发生态圈日益完善,基础的开源组件也越来越丰富,而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

Java Apache 开源项目简介

Apache Commons Apache Commons是Apache的一个开源项目,主要致力于各种可重用的Java组件.主要由以下三部分构成: The Commons Proper - 一个可重用的Java组件库(已经开发完的项目,一般我们导入相关jar包就可以使用) The Commons Sandbox - Java组件开发工作区(正在开发的项目) The Commons Dormant - 当前处于非活跃的Java组件库(其实就是还没开始开发) The Commons Proper 一