前言
最近用了許多圖片加載的框架,都各有利弊。
嘗試尋找一種比較吊的圖片框架,沒錯就是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會替你完成:
• 顯示佔位圖直到加載完成;
• 下載圖片;
• 緩存圖片;
• 圖片不再顯示時,從內存中移除;