活动开始时启动动画

时间:2015-04-17 05:14:35

标签: android eclipse

我的动画在按下按钮时运行,现在我希望动画在活动开始时启动。以下是我的代码。

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        animationStart();

        Button onButton = (Button) findViewById(R.id.button1);
        onButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                animationStart();
            }
        });

    }


    private void animationStart() {
        ImageView imageanimate = (ImageView) findViewById(R.id.imageView1);
        imageanimate.setBackgroundResource(R.drawable.ball_animation);
        animation = (AnimationDrawable) imageanimate
                .getDrawable();

        if (animation.isRunning()) {
            animation.stop();
        }
        animation.start();
    }

    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        animationStart();
        super.onStart();
    }

}

我还尝试在onstart方法中初始化动画,但它现在正在工作。

我希望当活动开始时动画应该播放。任何人都可以指导我正确的方式,因为它不起作用。动画仅适用于按下按钮。

3 个答案:

答案 0 :(得分:1)

如果你想在onCreate或onStart中启动动画,你应该在处理程序中以1000-2000毫秒的后延迟启动动画,这将有足够的时间来初始化imageview。

 Handler handler = new Handler();
  handler.postDelayed(new Runnable() {
     public void run() {
       //Start your animation here
         }
     },1000);
  }

答案 1 :(得分:0)

我不测试它,我希望它能帮到你。

  protected void onCreate(Bundle savedInstanceState) {
      //....
      final Handler handler = new Handler();
      handler.postDelayed(new Runnable() {
         public void run() {
             animationStart();
         }
      },0);
      //...
  }

答案 2 :(得分:0)

private boolean mDoStartingAnim;

public void onCreate(Bundle savedInstanceState) {
    // ...
    mDoStartingAnim= true;
    // ...
}

public void onResume() {
    if (mDoStartingAnim) {
        animationStart();
        mDoStartingAnim = false;
    }
}

我希望它能帮到你..

相关问题