简单的Fresco加载图片和GIF图片加载与停止

首先导入依赖

compile 'com.facebook.fresco:fresco:0.11.0'

如果要实现GIF图片加载再导入依赖

compile 'com.facebook.fresco:animated-gif:0.12.0'
MainActivity代码:

public class MainActivity extends AppCompatActivity {
    private SimpleDraweeView sdv;
    private String path = "https://b-ssl.duitang.com/uploads/item/201602/10/20160210093705_dVhUr.jpeg";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sdv = (SimpleDraweeView) findViewById(R.id.main_simple_drawee_view);

        Uri uri = Uri.parse(path);
//        sdv.setImageURI(uri);

        DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setUri(uri)
                .setAutoPlayAnimations(true)
                .build();
        sdv.setController(controller);
    }

    public void BtnView(View view) {
        Intent intent = new Intent(MainActivity.this, TwoActivity.class);
        startActivity(intent);
    }
}
这样就可以实现网络图片的加载

TwoActivity代码(GIF图片的加载和圆角圆形图片):

public class TwoActivity extends AppCompatActivity {
    private SimpleDraweeView sdv;
    private String path = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1509593532100&di=9c720c9755b2dcdcfb712d77ef186667&imgtype=0&src=http%3A%2F%2Fimg.52fuqing.com%2Fupload%2Fnews%2F20170425%2F2017042507220012.jpg";
    private String pathgif = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1509595639069&di=27d2be178ef82506f98aa4df3de1c730&imgtype=0&src=http%3A%2F%2Fww1.sinaimg.cn%2Flarge%2F85cccab3gw1etdl8di5x6g20jg0byhdt.jpg";
    private RoundingParams rp = new RoundingParams();
    private SimpleDraweeView s;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);
        sdv = (SimpleDraweeView) findViewById(R.id.two_sdv);

        final Uri uri = Uri.parse(path);
//        sdv.setImageURI(uri);

        final DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setUri(uri)
                .setAutoPlayAnimations(true)
                .build();
        sdv.setController(controller);
        //注册点击事件 点击后将圆形图片切换为圆角图片
        sdv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                GenericDraweeHierarchy hierarchy = GenericDraweeHierarchyBuilder.newInstance(getResources())
                        .setRoundingParams(RoundingParams.fromCornersRadius(20))
                        .setFadeDuration(5000)
                        .build();
                sdv.setHierarchy(hierarchy);
                DraweeController controller = Fresco.newDraweeControllerBuilder()
                        .setUri(uri)
                        .setAutoPlayAnimations(true)
                        .build();
                sdv.setController(controller);
            }
        });


    }

    /**
     * 点击事件  开始GIF图片播放
     *
     * @param view
     */
    public void BtnS(View view) {
        s = (SimpleDraweeView) this.findViewById(R.id.sim_fre);
        DraweeController mDraweeController = Fresco.newDraweeControllerBuilder()
                .setAutoPlayAnimations(true)
                //设置uri,加载本地的gif资源
                .setUri(Uri.parse(pathgif))//设置uri
                .build();
//设置Controller
        s.setController(mDraweeController);
    }

    /**
     * 点击事件 将GIF图片停止
     *
     * @param view
     */
    public void BtnT(View view) {
        Animatable animation = s.getController().getAnimatable();
        animation.stop();
    }

    /**
     * 清除缓存
     *
     * @param view
     */
    public void BtnC(View view) {


        ImagePipeline imagePipeline = Fresco.getImagePipeline();
        imagePipeline.clearMemoryCaches();
        imagePipeline.clearDiskCaches();

// combines above two lines
        imagePipeline.clearCaches();


    }
}
因为这个网络图片加载框架需要初始化:

MyApp代码:

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);
    }
}
activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="zww.com.zhouwangwei20171102.MainActivity">

    <com.facebook.drawee.view.SimpleDraweeView
        android:layout_weight="1"
        android:id="@+id/main_simple_drawee_view"
        android:layout_width="400dp"
        android:layout_height="match_parent"
        fresco:failureImage="@mipmap/fail"
        fresco:placeholderImage="@mipmap/ic_launcher"
        fresco:progressBarImage="@mipmap/ic_launcher_round"
        fresco:retryImage="@mipmap/timg" />

    <Button
        android:onClick="BtnView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="跳转" />
LinearLayout>
activity_two.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/two_sdv"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_gravity="center_horizontal"
        fresco:roundAsCircle="true" />

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/sim_fre"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_gravity="center_horizontal"
        fresco:placeholderImage="@mipmap/ic_launcher" />

    <LinearLayout

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="BtnS"
            android:text="开始" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="BtnC"
            android:text="清除缓存" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="BtnT"
            android:text="停止" />
    LinearLayout>
LinearLayout>




你可能感兴趣的:(简单的Fresco加载图片和GIF图片加载与停止)