Android【Fresco】真正实现三级缓存的第三方图片加载框架

前言

最近用了许多图片加载的框架,都各有利弊。
尝试寻找一种比较吊的图片框架,没错就是Fresco了。

他真正实现了三级缓存,而且速度快,不会出现图片过大造成OOM的现象发生。

Fresco和Picasso类似,用起来十分方便,为一区别是他必须使用自己类库的SimpleDraweeView来代替ImageView。下面是其基础使用方式


Android Studio 导入到项目

不知道为什么我在添加依赖里搜不到fresco
如果你也和我一样,可以通过Gradel添加依赖

compile 'com.facebook.fresco:fresco:0.10.0'

准备工作

为了下载网络图片,请确保在 AndroidManifest.xml 中有以下权限:

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

在 Application 初始化时,在应用调用 setContentView() 之前,进行始化

Fresco.initialize(context);

布局

在xml布局文件中, 加入命名空间:

<!-- 其他元素 -->
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fresco="http://schemas.android.com/apk/res-auto">


加入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"
  />

加载图片

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

剩下的,Fresco会替你完成:
• 显示占位图直到加载完成;
• 下载图片;
• 缓存图片;
• 图片不再显示时,从内存中移除;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章