Android动画没有播放

时间:2011-11-05 04:41:01

标签: android animation

我正在尝试逐帧动画在2.2 vm机器上使用eclipse在Android 2.2上运行,我不能为我的生活让它运行。它就位于动画的第一帧。

这是我的活动代码:

public class SpriteAnimationActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  
        ImageView lView = (ImageView) findViewById(R.id.imageView1);
        AnimationDrawable lAnimation = (AnimationDrawable)lView.getBackground();
        lAnimation.start();
    }
}

这是我的动画列表xml文件:

<?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/a1" android:duration="100" />
    <item android:drawable="@drawable/a2"   android:duration="100" />
    <item android:drawable="@drawable/a3"   android:duration="100" />    
</animation-list>

我在主屏幕上使用imageView小部件通过设置背景来显示图像。我试着按照这里的指南http://developer.android.com/guide/topics/graphics/drawable-animation.html但我似乎无法让它工作

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

你必须强行开始动画......

 ImageView lView = (ImageView) findViewById(R.id.imageView1);

            lView.setBackgroundResource(R.drawable.my_animation_list);
            final AnimationDrawable lAnimation = (AnimationDrawable)lView.getBackground();


    //        Button btn=
            findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                     lAnimation.start();
                }
            });

答案 2 :(得分:0)

您必须通过按钮单击侦听器手动启动动画或使用如下所示的onWindowFocusChange侦听器

public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if(hasFocus) {
        lAnimation.start(); 
    }
}