首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AnimationDrawable未播放

AnimationDrawable未播放
EN

Stack Overflow用户
提问于 2011-03-31 02:52:24
回答 6查看 17.8K关注 0票数 22

因此,我希望我的动画在活动创建后立即开始,但出于某种原因,无论我尝试什么,它都会启动。我可以让它通过点击事件来启动,但我想让它自己启动。

这就是我所拥有的,我如何让它工作呢?

代码语言:javascript
复制
package tween.learn;

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageView;

public class Animate extends Activity {

    public ImageView image;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        ImageView tweenImage = (ImageView) findViewById(R.id.imageView1);
        tweenImage.setBackgroundResource(R.anim.cubicfacetween);

        AnimationDrawable frameAnimation = 
                           (AnimationDrawable) tweenImage.getBackground();
        frameAnimation.start();

        }



}

谢谢

EN

回答 6

Stack Overflow用户

发布于 2011-03-31 03:02:27

我认为您必须在相关视图的初始化完成后开始动画。您应该能够执行以下操作:

代码语言:javascript
复制
final ImageView tweenImage = (ImageView) findViewById(R.id.imageView1);
tweenImage.setBackgroundResource(R.anim.cubicfacetween);      
tweenImage.post(new Runnable() {
    @Override
    public void run() {
        AnimationDrawable frameAnimation =
            (AnimationDrawable) tweenImage.getBackground();
        frameAnimation.start();
    }
}

编辑-这个问题让我相信onWindowFocusChanged方法并不总是有效的。它确实看起来更简单,而且如果它对你有效的话,可能是一个更好的主意。

票数 61
EN

Stack Overflow用户

发布于 2012-07-23 10:10:15

我知道这是一个老问题,但我也有同样的问题,但答案对我没有帮助。在花了几个小时之后,我终于发现我的问题是我把android:src="@drawable/myanimation"添加到了imageview容器中。一旦我删除了这个,上面的答案就起作用了。我认为动画正在运行,但通过设置src,动画的第一个图像位于它的顶部,因此我认为它没有播放。

  • 我的最终代码有一个XML文件,其中的动画保存在可绘制文件夹
  • my layout中有一个未定义android:src的imageview,并设置为不可见的
  • in onCreate I将imageview设置为visible,并将setBackgroundResource设置为我的动画,该动画在< code >D12中的XML文件

H111中描述。

票数 21
EN

Stack Overflow用户

发布于 2011-03-31 03:00:55

尝试在窗口获得焦点后通过覆盖活动中的onWindowFocusChanged来启动动画:

代码语言:javascript
复制
  @Override
  public void onWindowFocusChanged (boolean hasFocus)
  {
      //Start animation here
  }

请参阅此处的文档:http://developer.android.com/reference/android/app/Activity.html#onWindowFocusChanged%28boolean%29

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5490803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档