implementation 'com.facebook.fresco:fresco:0.12.0' // 支持 GIF 动图,需要添加 compile 'com.facebook.fresco:animated-gif:0.12.0'
implementation 'com.android.support:support-v4:27.1.1'
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:fresco="http://schemas.android.com/apk/res-auto" tools:context="com.example.zhangshaohang20180510.MainActivity"> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/simpleDraweeView" android:layout_width="200dp" android:layout_height="200dp" android:layout_centerInParent="true" fresco:placeholderImage="@drawable/a" fresco:failureImage="@drawable/bb" fresco:roundAsCircle="true" fresco:roundingBorderWidth="10dp" fresco:roundingBorderColor="#ff3306" fresco:retryImage="@drawable/cc" ></com.facebook.drawee.view.SimpleDraweeView> </RelativeLayout>MainActivity
package com.example.zhangshaohang20180510; import android.graphics.drawable.Animatable; import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; import com.facebook.drawee.backends.pipeline.Fresco; import com.facebook.drawee.controller.BaseControllerListener; import com.facebook.drawee.controller.ControllerListener; import com.facebook.drawee.interfaces.DraweeController; import com.facebook.drawee.view.SimpleDraweeView; import com.facebook.imagepipeline.request.ImageRequest; import com.facebook.imagepipeline.request.ImageRequestBuilder; public class MainActivity extends AppCompatActivity { private SimpleDraweeView mSimpleDraweeView; private final static String imgUrl="http://p0.ifengimg.com/pmop/2018/0224/00FA1C695CED6ABC7EEE95D3A4A3A98EE63E9FF2_size77_w640_h640.jpeg"; private final static String imgGif="http://img.zcool.cn/community/01b3085a5d5c15a80120121f44e934.gif"; /** * 吐司 */ ControllerListener controllerListener=new BaseControllerListener(){ @Override /** * 成功 */ public void onFinalImageSet(String id, @Nullable Object imageInfo, @Nullable Animatable animatable) { super.onFinalImageSet(id, imageInfo, animatable); Toast.makeText(MainActivity.this,"加载图片成功",Toast.LENGTH_SHORT).show(); } /** * 失败 * @param id * @param throwable */ @Override public void onFailure(String id, Throwable throwable) { super.onFailure(id, throwable); Toast.makeText(MainActivity.this,"加载图片失败",Toast.LENGTH_SHORT).show(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); methch(); //methch1(); } /** * 静态图片 */ private void methch1() { ImageRequest request=ImageRequestBuilder.newBuilderWithSource(Uri.parse(imgUrl)) .setProgressiveRenderingEnabled(true) .build(); DraweeController draweeController=Fresco.newDraweeControllerBuilder() .setImageRequest(request) .setTapToRetryEnabled(true) .setControllerListener(controllerListener) .build(); mSimpleDraweeView.setController(draweeController); } /** * 动态图 */ private void methch() { DraweeController draweeController=Fresco.newDraweeControllerBuilder() .setUri(imgGif) .setAutoPlayAnimations(true) .setControllerListener(controllerListener) .build(); mSimpleDraweeView.setController(draweeController); } /** * 找到控件 */ private void initView() { mSimpleDraweeView = (SimpleDraweeView) findViewById(R.id.simpleDraweeView); } }MyApp
package com.example.zhangshaohang20180510; import android.app.Application; import com.facebook.drawee.backends.pipeline.Fresco; /** * 姓名:${user} * 时间:${date} */ public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); Fresco.initialize(this); } }