`
berdy
  • 浏览: 509015 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

解决Android帧动画在Oncreate中启动只显示第一帧

阅读更多
做了个简单的帧动画,在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;

	@Override
	protected 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 上发现一个解决办法
	@Override
	protected 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() {
			@Override
			public void run() {
				animDrawable.start();
			}
		});
	}


或者在Activity中的onWindowFocusChanged方法中start
	@Override
	public void onWindowFocusChanged(boolean hasFocus) {
		super.onWindowFocusChanged(hasFocus);
		if (fireImg != null) {
			AnimationDrawable animDrawable = (AnimationDrawable) fireImg
					.getBackground();
			animDrawable.start();
		}
	}
1
2
分享到:
评论
1 楼 plmmmmlq 2014-12-20  
爱死你了,困惑我几天的问题终于解决了。自定义dialog中加载帧动画,在2.3系统中不动,4.0的系统就正常,求原因。第二种方法试过,无效,我用第一种。感谢分享。

相关推荐

    新版Android开发教程.rar

    � 由于采用了 Java 作为应用开发语言,目前可用的传统第三方应用还很少,但由于 Android 是一款完全 开 源的移动计算平台,相信第三方应用会很快的丰富起来。 � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的...

    Android 滑动翻页源码

    第一个属性对应着第一个方法,第二个属性对应第二个方法。 实现滑动 实现滑动就必须介绍一下GestureDetector: GestureDetector类中可以用来检测各种手势事件。 该类有两个回调接口,分别用来通知具体的事件...

    Android 滑动翻页源码.zip

    第一个属性对应着第一个方法,第二个属性对应第二个方法。 实现滑动 实现滑动就必须介绍一下GestureDetector: GestureDetector类中可以用来检测各种手势事件。 该类有两个回调接口,分别用来通知具体的事件。...

    Fragmentation-为"单Activity + 多Fragment","多模块Activity 多Fragment"架构而生,简化开发,轻松解决动画、嵌套、事务相关等问题。.zip

    为了更好的使用和了解该库,推荐阅读下面的文章:Fragment全解析系列(一):那些年踩过的坑Fragment全解析系列(二):正确的使用姿势Demo演示:均为单Activity 多Fragment,第一个为简单流式demo,第二个为仿微信...

    android顶部滑动导航

    android:layout_width="1dip" android:layout_height="5dip" android:layout_alignParentBottom="true" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:background="#5AB2EF" ...

    Android项目源码开源的 Material Design 豆瓣客户端.zip

    Android 默认在冷启动应用进程至能够调用 Activity.onCreate() 前会加载应用主题中的背景作为预览,而默认背景是白色,与应用在上部拥有绿色 AppBar 的效果不相匹配。 为了生成适应于不同屏幕大小、系统版本的图片...

    计步器的实现

    /**【第一步】绘制整体的灰色圆弧*/ drawArcYellow(canvas, rectF); /**【第二步】绘制当前进度的蓝色圆弧*/ drawArcRed(canvas, rectF); /**【第三步】绘制当前进度的白色数字*/ drawTextNumber(canvas, ...

    Android 使用XML做动画UI的深入解析

    效果: http://www.56.com/u82/v_OTM4MDk5MTk.html第一步: 创建anim文件夹放置动画xml文件在res文件夹下,创建一个anim的子文件夹。  第二步: 加载动画接着在Activity创建一个Animation类,然后使用AnimationUtils...

    高仿微信界面

    分为3步,第一步是界面的编写,第二步是导航界面,第三步是右上角菜单栏。 开始第一步前先预览一下效果。 第一步,界面。 界面的思路是利用ViewPager+Fragment实现,所以activity_main.xml中添加一个ViewPager。...

    CircleIndicator-一个轻量级的viewpager指示器 ,类似于nexus5 启动器的效果.zip

    第一组是采用默认样式的,被选中的小圆点带有放大的动画。第2组比较全,既定义了动画又修改了样式。第3组是取消动画的同时使用了ci_drawable_unselected属性。适配器Adapter:public class DemoPagerAdapter ...

    cardinals:Android常用工具类集合

    cardinalscardinals是一个Android快速开发框架,将某些常用功能和第三方库进行封装可以帮你进行快速功能特性提供MvpActivity、MvpFragment、MvpPresenter、MvpView等可以让你可以基于mvp快速开发提供BaseListAdapter...

Global site tag (gtag.js) - Google Analytics