AnimationDrawable没有玩

Jos*_*and 21 animation android drawable

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

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

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();

        }



}
Run Code Online (Sandbox Code Playgroud)

谢谢

Mat*_*lis 61

我认为你必须在有问题的视图初始化完成后启动动画.你应该可以这样做:

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑 - 这个问题让我相信这种onWindowFocusChanged方法并不总是有效.它似乎更简单,如果它适合你,可能是一个更好的主意.

  • 这样做的伎俩,我想现在就把框架动画文档的作者踢出来...... (10认同)
  • WTH!这是完美的,但"官方"文档不值得运用.谢谢马修威利斯. (5认同)

小智 21

我知道这是一个老问题,但我遇到了同样的问题,但答案并没有帮助我.花了几个小时研究它后我终于发现我的问题是我已经添加android:src="@drawable/myanimation"到imageview容器中了.一旦我删除了这个,上述答案就有效了.我认为动画正在运行但是通过设置src,动画的第一个图像就在它上面,因此我认为它不是在播放.

  • 我的最终代码有一个XML文件,动画保存在drawable文件夹中
  • 我的布局有一个没有android:src定义的imageview,并设置为不可见
  • onCreate我将imageview设置为可见和setBackgroundResource我在XML文件中描述的动画
  • onWindowFocusChanged我开始动画.


Rya*_*ves 3

尝试在窗口获得焦点后通过重写 Activity 中的 onWindowFocusChanged 来启动动画:

  @Override
  public void onWindowFocusChanged (boolean hasFocus)
  {
      //Start animation here
  }
Run Code Online (Sandbox Code Playgroud)

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