//首先要先导几个依赖
第一个依赖是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); } }