一、简介
Fresco 的出现,似乎将 Android 的图片加载做到了极致
Fresco 中文说明:http://www.fresco-cn.org/
Fresco 项目GitHub地址:https://github.com/facebook/fresco
Fresco 的Drawees 负责图片的呈现,Image Pipeline 负责图片的获取和管理。
Drawees功能:
设置要加载的图片
设置占位图
设置加载失败时的占位图
点击重新加载
显示一个进度条
设置背景
叠加图
按压状态下的叠加图
缩放
圆角和圆圈
使用ControllerBuilder
渐进式JPEG图
动画支持(GIF 和 WebP 格式的动画)
多图请求及图片复用
监听下载事件
缩放和旋转图片
修改图片
图片请求(Image Requests)
自定义View
Image Pipeline功能:配置Image Pipeline
缓存
直接使用Image Pipeline
数据源和数据订阅者
可关闭的引用
Webp支持
二、使用Fresco
1.引入Fresco,编辑
build.gradle
文件:compile 'com.facebook.fresco:fresco:1.3.0'
2.在
AndroidManifest.xml
中声明了网络请求的权限<uses-permission android:name="android.permission.INTERNET" />
3.始化Fresco类
// 在加载图片之前,你必须初始化Fresco类 Fresco.initialize(this);
4.在xml布局文件中, 加入命名空间
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fresco="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent">
5.加入SimpleDraweeView
<com.facebook.drawee.view.SimpleDraweeView android:id="@+id/my_image_view" android:layout_width="130dp" android:layout_height="130dp" fresco:placeholderImage="@drawable/my_drawable" />
6.开始加载图片
Uri uri = Uri.parse("https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3103457797,1011040581&fm=26&gp=0.jpg"); SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view); draweeView.setImageURI(uri);
三、几种常用的效果展示
相关参数说明:
<com.facebook.drawee.view.SimpleDraweeView android:id="@+id/my_image_view" android:layout_width="20dp" android:layout_height="20dp" fresco:fadeDuration="300"-----淡入淡出动画持续时间 fresco:actualImageScaleType="focusCrop"-----设置缩放类型 fresco:placeholderImage="@color/wait_color"-----占位图 fresco:placeholderImageScaleType="fitCenter"-----占位图缩放类型 fresco:failureImage="@drawable/error"-----加载失败图 fresco:failureImageScaleType="centerInside"-----加载失败图缩放类型 fresco:retryImage="@drawable/retrying"-----点击重新加载图 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"-----圆角半径 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"-----圆形或圆角的边框颜色 />
四、示例代码
示例代码:http://download.csdn.net/detail/wang295689649/9863934
注:官网文档非常详细,建议查看文档API,各功能介绍