图片加载框架-Fresco

来源:互联网 发布:深入浅出 python 中文 编辑:程序博客网 时间:2024/04/23 21:41

第一 Fresco源码地址:http://fresco-cn.org/

第二 在你的Gradle里添加以下依赖:

  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'第三  使用Fresco必须初始化 
public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();Fresco.initialize(this);}}
第四 需要在AndroidManifest.xml添加以下权限和生命Application

 
 <manifest    ...    >    <uses-permission android:name="android.permission.INTERNET" />    <application      ...      android:label="@string/app_name"      android:name=".MyApplication"      >      ...    </application>    ...  </manifest>

第五 加入Fresco的命名空间

 
<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">第六 添加Fresco自己的控件
<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);
第八 使用Fresco的优缺点
1.带有三级缓存。
2.在图片加载完成前显示占位图,加载成功后自动替换为目标图片。
3.在图片不显示的时候,占用的内存会自动被释放。
4.为同一个图片指定不同的远程路径,或者使用已经存在本地缓存中的图片
5.先显示一个低清晰度的图片,等高清图下载完之后再显示高清图
6.加载完成回调通知
7.对于本地图,如有EXIF缩略图,在大图加载完成之前,可先显示缩略图
8.缩放或者旋转图片
9.对已下载的图片再次处理
10.支持WebP解码,即使在早先对WebP支持不完善的Android系统上也能正常使用!

0 0
原创粉丝点击