Fresco基本使用基本介绍


Fresco介绍

项目github地址:https://github.com/facebook/fresco 
Fresco中文API:http://fresco-cn.org/docs/index.html

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。
特点-渐进式呈现图片
  • 渐进式的JPEG图片格式已经流行数年了,渐进式图片格式先呈现大致的图片轮廓,然后随着图片下载的继续, 呈现逐渐清晰的图片,这对于移动设备,尤其是慢网络有极大的利好,可带来更好的用户体验。
特点-Gif图和WebP格式
  • 支持加载Gif图,支持WebP格式。
特点-图像的呈现
  • 1、自定义居中焦点(对人脸等图片显示非常有帮助)。
  • 2、圆角图,当然圆圈也行。
  • 3、下载失败之后,点击重现下载。
  • 4、自定义占位图,自定义overlay, 或者进度条。
  • 5、指定用户按压时的overlay。
特点-图像的加载
  • 1、为同一个图片指定不同的远程路径,或者使用已经存在本地缓存中的图片。
  • 2、先显示一个低解析度的图片,等高清图下载完之后再显示高清图。
  • 3、加载完成回调通知。
  • 4、对于本地图,如有EXIF缩略图,在大图加载完成之前,可先显示缩略图。
  • 5、缩放或者旋转图片。
  • 6、处理已下载的图片。
  • 7、WebP支持。

Fresc是Facebook出品的图片加载框架
依赖
compile 'com.facebook.fresco:fresco:0.12.0'
// 在 API < 14 上的机器支持 WebP 时,需要添加 compile 'com.facebook.fresco:animated-base-support:0.12.0' // 支持 GIF 动图,需要添加 compile 'com.facebook.fresco:animated-gif:0.12.0' // 支持 WebP (静态图+动图),需要添加 compile 'com.facebook.fresco:animated-webp:0.12.0' compile 'com.facebook.fresco:webpsupport:0.12.0' // 仅支持 WebP 静态图,需要添加 compile 'com.facebook.fresco:webpsupport:0.12.0'
第二步初始化
初始化
[MyApplication.java]public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();Fresco.initialize(this);}}
或者
在oncreaterview前Fresco.initialize(this);
第三步权限
<uses-permission android:name="android.permission.INTERNET" />
第四
布局加入命名空间
xmlns:fresco="http://schemas.android.com/apk/res-auto"

使用控件
<com.facebook.drawee.view.SimpleDraweeView android:id="@+id/my_image_view" android:layout_width="130dp" android:layout_height="130dp" fresco:placeholderImage="@drawable/my_drawable" />

最后加载图
Uri uri = Uri.parse("https://raw.githubusercontent.com/facebook/fresco/gh-pages/static/logo.png");SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);draweeView.setImageURI(uri);

  • 显示占位图直到加载完成;
  • 下载图片;
  • 缓存图片;
  • 图片不再显示时,从内存中移除;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值