Fresco动态加载图片

//首先要先导几个依赖

第一个依赖是Fresco的依赖

compile 'com.facebook.fresco:fresco:0.14.1'
第二个依赖是支持GIF的依赖

compile 'com.facebook.fresco:animated-gif:0.14.1'
//然后把这一切都搞定了以后写一个APP的类把这个代码放到onCreate里
Fresco.initialize(this);
//把这个写完以后千万别忘了再清单文件里注册一下子
//还有不要忘记加网络权限

//下面是主页面的布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center"
    android:orientation="vertical"
    android:layout_height="match_parent"
    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    tools:context="com.baway.admin.gif.MainActivity">

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/my_image_view"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_gravity="center"
        fresco:placeholderImage="@mipmap/ic_launcher_round"
        />

    <Button
        android:id="@+id/bt_fresco_stopAnim"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:text="动画停止" />

    <Button
        android:id="@+id/bt_fresco_startAnim"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:text="动画开始" />

</LinearLayout>


//好吧把主Activity也放上来吧!!
public class MainActivity extends AppCompatActivity {

    private SimpleDraweeView sdv;
    private Button bt_fresco_stopAnim;
    private Button bt_fresco_startAnim;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        // 图片地址
        Uri uri = Uri.parse("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1511876008335&di=155341868987764c2b1cbc077a6bf5b4&imgtype=0&src=http%3A%2F%2Fimg.mp.sohu.com%2Fupload%2F20170803%2F3b3d5234f1004fdfa227141283c074e9_th.png");
        DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setUri(uri)
                .setAutoPlayAnimations(true)//设置为true将循环播放Gif动画
                .setOldController(sdv.getController())
                .build();

        // 设置控制器
        sdv.setController(controller);

        //开始动画
        bt_fresco_startAnim.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Animatable animation = sdv.getController().getAnimatable();

                if (animation != null && !animation.isRunning()) {
                    animation.start();
                }
            }
        });

        //停止动画
        bt_fresco_stopAnim.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Animatable animation = sdv.getController().getAnimatable();

                if (animation != null && animation.isRunning()) {
                    animation.stop();
                }
            }
        });
    }

    private void initView() {
        sdv = findViewById(R.id.my_image_view);
        bt_fresco_stopAnim = findViewById(R.id.bt_fresco_stopAnim);
        bt_fresco_startAnim = findViewById(R.id.bt_fresco_startAnim);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40983361/article/details/80278559