2017-09-29 4 views
1

J'anime un chargeur au démarrage. Comment est-ce que je peux contourner cela au lieu d'utiliser l'écouteur d'ontouch pour arrêter la minuterie, j'utilise un temps de dire comme 3 secondes? Voici mon code:Comment chronométrer une animation en android

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




} 

Répondre

0
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) { 

    } 
}); 
+0

Merci, mais cela fait courir à l'infini. Je veux régler l'heure pour qu'elle dure 3 secondes. –

1

Vous pouvez utiliser View.postDelayed() pour exécuter une action après un délai fixé:

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); 
} 
+0

Merci !!!! Fonctionne exactement comme je le voulais. –

0
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) { 

      } 
     }); 
+0

Merci. Cela fonctionne maintenant. –

+0

S'il vous plaît upvote si c'est utile pour vous – namezhouyu

+0

Malheureusement, @namezhouyu ma réputation ne me permet pas de faire cela. –