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會替你完成:
• 顯示佔位圖直到加載完成;
• 下載圖片;
• 緩存圖片;
• 圖片不再顯示時,從內存中移除;

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