在android上显示gif不太方便,虽然有控件可以实现,但是效果不是很好,保险点儿的作法还是使用帧动画来处理。
①在XML中定义animation-list:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" >

<item android:drawable="@drawable/f_1" android:duration="30"/>
<item android:drawable="@drawable/f_2" android:duration="30"/>
<item android:drawable="@drawable/f_3" android:duration="30"/>
<item android:drawable="@drawable/f_4" android:duration="30"/>
</animation-list>
②在XML布局中定义ImageView,指定其src属性或background属性为"@anim/loading"
③在java代码中:
ImageView imageView = (ImageView) findViewById(R.id.frame);
AnimationDrawable drawable = (AnimationDrawable) imageView.getDrawable();
// 使用background属性时
// AnimationDrawable drawable = (AnimationDrawable) imageView.getBackground();
drawable.setOneShot(false); // 重复播放
④在java代码中调用:
drawable.start()或drawable.stop()实现动画的播放和停止。

值得注意的是上面的代码在android4.0系统没问题,但是在2.3系统上动画无效,所以我们需要使用另一种方式。

// 兼容android 4.0 以下系统
imageView.post(new Runnable() {

  @Override
  public void run() {
    draw.start();
  }
});

更多相关文章

  1. 查看 android 现在有什么分支
  2. Android(安卓)Local语言设置
  3. 取消程序在最近六项中显示以及直接调用信息短信界面
  4. Android(安卓)-- 利用ContentProvider 读取和写入短信
  5. Android动画总结 (valueAnimator、objectAnimator、AnimatorSet、
  6. android典型代码系列(十二)------删除某个文件夹里面的所有内容(
  7. [unity3d]Unity3D与android交互----构建android插件
  8. android画图-----DensityActivity 添加view
  9. Android(安卓)O中修改NotificationChannel 属性,升级app后该修改

随机推荐

  1. Android 内存溢出解决方案(OOM) 整理总结
  2. 15款小应用源码
  3. Android NDK STL
  4. Mac下搭建android编译环境,编译cocos2d-x
  5. Android离线安装方法
  6. Android中的手势识别
  7. 【方案汇总】BroadcastReceiver静态内部
  8. android gen文件不生成、R文件报错
  9. Android开发教程大全介绍
  10. Android的多线程限制