简单实用Fresco

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);
    }
}

猜你喜欢

转载自blog.csdn.net/zhang1223665986/article/details/80268440