FaceBook推出的图片处理框架
主页:
https://github.com/facebook/fresco
中文文档:http://fresco-cn.org/docs/index.html


功能

在XML中使用
Drawees
在Java代码中使用 Drawees
Drawee的各种效果配置
进度条
缩放
圆角/圆圈
渐进式JPEG图
动画图(gif)
多图请求及图片复用
监听下载事件
缩放和旋转


使用步骤

1.添加依赖: compile 'com.facebook.fresco:fresco:0.9.0+'

2.添加权限

<uses-permission
android:name="android.permission.INTERNET"/>

3.在Application初始化或在Activity 的**setContentView()方法之前**,进行初始化,开发中一般在Application中初始化
,
Fresco.initialize(this);

4.在布局文件中添加图片控件.宽高必须显示指定,否则图片无法显示.需要添加自定义的命名空间

xmlns:app=http://schemas.android.com/apk/res-auto

<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/my_image_view"
android:layout_width="200dp"
android:layout_height="200dp"
app:placeholderImage="@mipmap/ic_launcher" /> //设置默认加载的图片

5.在Java代码中指定图片的路径.显示图片.SimpleDraweeView接收的路径参数为URI,所以需要一次转换.

SimpleDraweeView view = (SimpleDraweeView) findViewById(R.id.my_image_view);
view.setImageURI(Uri.parse(file:///sdcard/Download/mm.jpg));

6.XML方式配置参数.除图片地址以外,其他所有显示选项都可以在布局文件中指定

<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/my_image_view"
android:layout_width="20dp"
android:layout_height="20dp"
fresco:actualImageScaleType="focusCrop"// 图片的缩放方式.
fresco:backgroundImage="@color/blue" //背景图.不支持缩放.XML仅能指定一张背景图.如果使用Java代码指定的话,可以指定多个背景,显示方式类似FrameLayout,多个背景图按照顺序一级一级层叠上去.
fresco:fadeDuration="300" // 渐显图片的时间
fresco:failureImage="@drawable/error" // 图片加载失败显示的图片
fresco:failureImageScaleType="centerInside" //// 图片加载失败显示的图片的缩放类型
fresco:overlayImage="@drawable/watermark" // 层叠图,最后叠加在图片之上.不支持缩放.XML仅能指定一张.如果使用Java代码指定的话,可以指定多个,显示方式类似FrameLayout,多个图按照顺序一级一级层叠上去.
fresco:placeholderImage="@color/wait_color" // 图片加载成功之前显示的占位图
fresco:placeholderImageScaleType="fitCenter" // 图片加载成功之前显示的占位图的缩放类型
fresco:pressedStateOverlayImage="@color/red" // 设置按压状态下的层叠图.不支持缩放.
fresco:progressBarAutoRotateInterval="1000" // 进度条图片旋转显示时长
fresco:progressBarImage="@drawable/progress_bar" // 进度条图片
fresco:progressBarImageScaleType="centerInside" //进度条图片的缩放类型
fresco:retryImage="@drawable/retrying" // 当图片加载失败的时候,显示该图片提示用户点击重新加载图片
fresco:retryImageScaleType="centerCrop" // 提示图片的缩放类型
fresco:roundAsCircle="false" // 显示圆形图片
fresco:roundBottomLeft="false" // roundedCornerRadius属性设置后,四个角都会有圆角,如果左下角不需要设置为false.
fresco:roundBottomRight="true" // roundedCornerRadius属性设置后,四个角都会有圆角,如果右下角不需要设置为false.
fresco:roundTopLeft="true" // roundedCornerRadius属性设置后,四个角都会有圆角,如果左上角不需要设置为false.
fresco:roundTopRight="false" // roundedCornerRadius属性设置后,四个角都会有圆角,如果右上角不需要设置为false.
fresco:roundWithOverlayColor="@color/corner_color" // 设置图片圆角后空出区域的颜色.如示例图中的红色部分
fresco:roundedCornerRadius="1dp" // 设置图片圆角角度,设置该属性后四个角都会生效
fresco:roundingBorderColor="@color/border_color" // 设置圆角后,边框的颜色.
resco:roundingBorderWidth="2dp" /> // 设置圆角后,外边框的宽高

7.Java代码配置参数.

设置默认的图片
GenericDraweeHierarchy hierarchy = GenericDraweeHierarchyBuilder
.newInstance(getResources())
.setRetryImage(getResources().getDrawable(R.mipmap.ic_launcher))
.build(); imageivew.setHierarchy(hierarchy);

8.显示GIF图片.Fresco 支持 GIF 和 WebP 格式的动画图片.如果你希望图片下载完之后自动播放,同时,当View从屏幕移除时,停止播放,只需要在 image request 中简单设置,示例代码:

SimpleDraweeView imageView = (SimpleDraweeView) findViewById(R.id.iv_gif);
//设置显示gif图的控制器
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(Uri.parse("http://192.168.13.77:8080/nice/fresco.gif"))
.setAutoPlayAnimations(true) //播放gif图片
.build();
//显示gif图
imageView.setController(controller);

图片加载框架之fresco的更多相关文章

  1. 强大的图片加载框架Fresco的使用

    前面在卓新科技有限公司实习的时候,在自己的爱吖头条APP中,在图片异步加载的时候和ListView的滑动中,总会出现卡顿,这是因为图片的缓存做的不是足够到位,在项目监理的帮助下,有使用Xutils框架 ...

  2. Fresco从配置到使用(最高效的图片加载框架)

    Frescoj说明:      facebook开源的针对android应用的图片加载框架,高效和功能齐全. 支持加载网络,本地存储和资源图片: 提供三级缓存(二级memory和一级internal ...

  3. Android之图片加载框架Fresco基本使用(一)

    PS:Fresco这个框架出的有一阵子了,也是现在非常火的一款图片加载框架.听说内部实现的挺牛逼的,虽然自己还没研究原理.不过先学了一下基本的功能,感受了一下这个框架的强大之处.本篇只说一下在xml中 ...

  4. 主流图片加载框架 ImageLoader、Glide、Picasso、Fresco 对比

    图片缓存库主页: Glidehttps://github.com/bumptech/glide fresco - An Android library for managing images and ...

  5. Android中常见的图片加载框架

    图片加载涉及到图片的缓存.图片的处理.图片的显示等.而随着市面上手机设备的硬件水平飞速发展,对图片的显示要求越来越高,稍微处理不好就会造成内存溢出等问题.很多软件厂家的通用做法就是借用第三方的框架进行 ...

  6. Android项目框架之图片加载框架的选择

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 从Android爆发以后,自定义的控件如EditTextWithDelete.ActionBar.P ...

  7. Android图片加载框架最全解析(一),Glide的基本用法

    现在Android上的图片加载框架非常成熟,从最早的老牌图片加载框架UniversalImageLoader,到后来Google推出的Volley,再到后来的新兴军Glide和Picasso,当然还有 ...

  8. android-------非常好的图片加载框架和缓存库(Picasso)

    Picasso是Square公司开源的一个Android图形缓存库, 可以实现图片加载(本地和网络)和缓存功能. 地址:http://square.github.io/picasso/ jar包下载: ...

  9. android--------Universal-Image-Loader图片加载框架和结合LruCache缓存图片

    本博客包含包含Android-Universal-Image-Loader 网络图片加载框架实现图片加载和结合universal-image-loader与LruCache来自定义缓存图片,可以设置缓 ...

随机推荐

  1. MySQL授权远程用户登录权限

    1 举例子,建数据库,然后 赋予用户远程访问的所有权限,最后刷新权限 create database cmf DEFAULT CHARACTER SET utf8; grant all on cmf. ...

  2. 目标检测之车辆行人(tensorflow版yolov3)

    背景: 在自动驾驶中,基于摄像头的视觉感知,如同人的眼睛一样重要.而目前主流方案基本都采用深度学习方案(tensorflow等),而非传统图像处理(opencv等). 接下来我们就以YOLOV3为基本 ...

  3. 4.NIO_Channel 通道

    1.通道(Channel) 由 java.nio.channels 包定义的.Channel 表示 IO 源与目标打开的连接.Channel 类似于传统的“流”.只不过 Channel 本身不能直接访 ...

  4. C#在Oralce环境执行查询时报"Arithmetic operation resulted in an overflow"

    问题描述:C#代码在Oralce环境执行分组求和的Sql时报错,提示“Arithmetic operation resulted in an overflow”,即算术运算导致溢出 (1).执行Sql ...

  5. shell脚本基础和grep文本处理工具企业应用4

    文本处理工具:    egrep:        支持扩展的正则表达式实现类似于grep文本过滤功能:grep -E        egrep [OPTIONS] PATTERN [FILE...]  ...

  6. PAT Basic 1051 复数乘法 (15 分)

    复数可以写成 ( 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 1:也可以写成极坐标下的指数形式 (,其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角形式 (. 现给定两 ...

  7. Java语言基础(7)

    1 for循环 案例:Demo1 1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ? 1/1+1/2+1/3+1/4+1/5+1/6+...+1/100 = ? 分子都是1,分母是 ...

  8. SCU 4584 tarjan+最大权闭合子图

    把每个点的点权当做是W[i]-V[i] 题目一眼是最大权闭合子图 但是可能会有重边自环和环 需要先搞成简单图 再tarjan缩点 缩点后就是裸的最大权闭合子图 #include<bits/std ...

  9. C# class 浅拷贝 与 深拷贝

    MemberwiseClone 方法创建一个浅表副本,具体来说就是创建一个新对象,然后将当前对象的非静态字段复制到该新对象.如果字段是值类型的,则对该字段执行逐位复制.如果字段是引用类型,则复制引用但 ...

  10. router-link

    <router-link> 组件支持用户在具有路由功能的应用中 (点击) 导航. 通过 to 属性指定目标地址,默认渲染成带有正确链接的 <a> 标签,可以通过配置 tag 属 ...