Francis Ting
Francis Ting

Reputation: 791

How to time an animation in android

I am animating a loader on start up. How can I work around it so that instead of using ontouch listener to stop the timer, I use a time of say like 3 seconds? Here is my code:

private void showdiag() {
    loader = findViewById(R.id.loader);
    logo= loader.findViewById(R.id.logo);
    logo.setAnimation(AnimationUtils.loadAnimation(this,R.anim.rotate));
    loader.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            loader.setVisibility(View.GONE);
        }
    });




}

Upvotes: 1

Views: 122

Answers (3)

namezhouyu
namezhouyu

Reputation: 224

Please try following code.  

     logo.getAnimation().setAnimationListener(new Animation.AnimationListener() {
          @Override public void onAnimationStart(Animation animation) {

          }

          @Override public void onAnimationEnd(Animation animation) {
           loader.postDelayed(new Runnable() {
        @Override
        public void run() {
            loader.setVisibility(View.GONE);
        }
    }, 3000);
          }

          @Override public void onAnimationRepeat(Animation animation) {

          }
        });

Upvotes: 0

Ben P.
Ben P.

Reputation: 54194

You can use View.postDelayed() to run some action after a set delay:

private void showdiag() {
    loader = findViewById(R.id.loader);
    logo = loader.findViewById(R.id.logo);
    logo.setAnimation(AnimationUtils.loadAnimation(this, R.anim.rotate));

    loader.postDelayed(new Runnable() {
        @Override
        public void run() {
            loader.setVisibility(View.GONE);
        }
    }, 3000);
}

Upvotes: 1

namezhouyu
namezhouyu

Reputation: 224

 logo.getAnimation().setAnimationListener(new Animation.AnimationListener() {
  @Override public void onAnimationStart(Animation animation) {

  }

  @Override public void onAnimationEnd(Animation animation) {
   loader.setVisibility(View.GONE);
  }

  @Override public void onAnimationRepeat(Animation animation) {

  }
});

Upvotes: 0

Related Questions