在onCreate方法上运行android动画

时间:2011-11-30 06:59:02

标签: android

我想在应用程序启动后立即运行我的Android动画 我在thunder.xml中使用带有动画列表的帧动画。 我的代码如下。

ImageView img = (ImageView) findViewById(R.id.animlist);    
img.setBackgroundResource(R.drawable.thunder);  
AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();
frameAnimation.start();

但这是在运行,但没有显示动画。 如果我创建一个按钮并将其设置为该按钮的onClick事件,那么它的工作正常。 但我想在应用程序启动后立即运行我的Android动画。 请帮我 .. 提前致谢

3 个答案:

答案 0 :(得分:1)

试试这段代码,它可以帮到你 -

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    animation = (ImageView)findViewById(R.id.imageAnimation);
    animation.setBackgroundResource(R.drawable.animation);      
}

public void onWindowFocusChanged (boolean hasFocus) 
{
    super.onWindowFocusChanged(hasFocus);
    AnimationDrawable frameAnimation = 
        (AnimationDrawable) animation.getBackground();
    if(hasFocus) {
        frameAnimation.start();
    } else {
        frameAnimation.stop();
    }
}

答案 1 :(得分:0)

尝试在onStart()方法中移动代码。我想你的动画正在运行,但在活动开始之前你的动画动画已经完成。

答案 2 :(得分:0)

onWindowFocusChanged()是在帧动画上调用start()的正确方法。