做了个简单的帧动画,在onCreate方法中start,发现只能看到第一帧
<?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/fire01"        android:duration="200"/>    <item        android:drawable="@drawable/fire02"        android:duration="200"/>    <item        android:drawable="@drawable/fire03"        android:duration="200"/>    <item        android:drawable="@drawable/fire04"        android:duration="200"/>    <item        android:drawable="@drawable/fire05"        android:duration="200"/>    <item        android:drawable="@drawable/fire06"        android:duration="200"/>    <item        android:drawable="@drawable/fire07"        android:duration="200"/>    <item        android:drawable="@drawable/fire08"        android:duration="200"/>    <item        android:drawable="@drawable/fire09"        android:duration="200"/></animation-list>


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"><ImageView        android:id="@+id/fire_img"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        android:background="@drawable/fire_anim" /></RelativeLayout>


ImageView fireImg = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ImageView fireImg = (ImageView) findViewById(R.id.fire_img);final AnimationDrawable animDrawable = (AnimationDrawable) fireImg.getBackground();animDrawable.start();}


stackoverflow 上发现一个解决办法
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ImageView fireImg = (ImageView) findViewById(R.id.fire_img);final AnimationDrawable animDrawable = (AnimationDrawable) fireImg.getBackground();fireImg.post(new Runnable() {@Overridepublic void run() {animDrawable.start();}});}


或者在Activity中的onWindowFocusChanged方法中start
@Overridepublic void onWindowFocusChanged(boolean hasFocus) {super.onWindowFocusChanged(hasFocus);if (fireImg != null) {AnimationDrawable animDrawable = (AnimationDrawable) fireImg.getBackground();animDrawable.start();}}

更多相关文章

  1. React Native填坑之旅--与Android模块通信
  2. Android模拟翻书效果
  3. Android(安卓)studio2.2 启动模拟器出现“/dev/kvm is not found
  4. Android(安卓)拍照裁剪图片不清晰解决办法
  5. Fragment Arguments
  6. Android屏幕区域划分及尺寸获取
  7. android ResolveInfo运用
  8. Android(安卓)Activity切换动画overridePendingTransition
  9. Android中使用Fragment实现标题栏(不可滑动)

随机推荐

  1. [Android] AutoCompleteTextView:自动完成
  2. android:windowSoftInputMode
  3. android的PowerManager和PowerManager.Wa
  4. 关于Android初学者的学习线路的相关知识
  5. Android自动挂断电话
  6. android渐变色,边角,边框,
  7. Android开发笔记——以Volley图片加载、
  8. Android(安卓)使用NDK R5开发JNI应用详解
  9. Android(安卓)Studio 单元测试(instrument
  10. Android生命周期和启动模式