第一步:导依赖包
与之前的android-image-indicator-master项目相同,本次依然使用AndroidStudio2.2。仍然采用在build.gradle下中dependencies下直接添加如下代码:
compile "com.facebook.fresco:fresco:0.12.0"
同时可以根据个人项目需求添加如下依赖:
dependencies {// 在 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"}第二步:添加网络权限
[MyApplication.java]public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();Fresco.initialize(this);}}做完上面的工作后,需要在 AndroidManifest.xml 中指定 Application 类。
(2)在MainActivity中调用初始化
需要注意的是要在setContentView之前初始化
package com.mly.panhouye.frescodemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import com.facebook.drawee.backends.pipeline.Fresco;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Fresco.initialize(this);//需要在setContentView之前初始化setContentView(R.layout.activity_main);}}第四步:layout中的xml布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"xmlns:fresco="http://schemas.android.com/apk/res-auto"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.mly.panhouye.frescodemo.MainActivity"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/my_image_view"android:layout_centerHorizontal="true"android:text="加载网络图片"android:onClick="loadInternetImage"android:layout_marginTop="12dp"android:id="@+id/button" /><com.facebook.drawee.view.SimpleDraweeViewandroid:id="@+id/my_image_view"android:layout_width="400dp"android:layout_height="400dp"fresco:placeholderImage="@mipmap/ic_launcher"android:layout_alignParentTop="true"android:layout_centerHorizontal="true" /></RelativeLayout>第五步:java实现代码
package com.mly.panhouye.frescodemo;import android.net.Uri;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import com.facebook.drawee.backends.pipeline.Fresco;import com.facebook.drawee.view.SimpleDraweeView;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Fresco.initialize(this);//需要在setContentView之前初始化setContentView(R.layout.activity_main);}//点击事件加载网络图片代码public void loadInternetImage(View view){Uri uri = Uri.parse("http://r.photo.store.qq.com/psb?/V12kkHqD1CWRD4/MeykWt0NXu0stiBFzf378D7ajKSDet6k1.Vaqmq2vps!/r/dKMAAAAAAAAA");SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);draweeView.setImageURI(uri);}}剩下的,Fresco会替你完成,比如:显示占位图直到加载完成;下载图片;缓存图片;图片不再显示时,从内存中移除等等等等。