2017-10-20 19 views
0

Je travaille sur un prototype de Tap Game.
Et je travaille sur l'animation quand le joueur endommage le monstre.Comment changer à plusieurs reprises la teinte d'un ImageView?

Le monstre est seulement une ImageView, et j'utiliser cette ligne pour modifier la teinte du ImageView à la couleur rouge (définie dans la color.xml)

imageView.setColorFilter(this.getResources().getColor(R.color.damage)); 

Mon but est de rendre le ImageView « clignote » entre l'ImageView original et l'ImageView avec la teinte rouge.
Mais je ne sais pas comment je peux le faire à plusieurs reprises.

Pouvez-vous m'aider? (Je l'espère, je me suis fait clair - je suis français et mon anglais est pas très bon)

Répondre

0

Le plus:

public void blinkLimited(long started, long duration) { 
    if(duration > System.currentTimeInMillis() - started) return; 
    imageView.setColorFilter(this.getResources().getColor(R.color.damage)); 
    imageView.postDelayed(new Runnable(){ public void run() { 
    imageView.setColorFilter(this.getResources().getColor(R.color.atention)); 
       imageView.postDelayed(new Runnable(){ public void run() { 
        blinkLimited(started, duration); 
       }, 200); 
    }, 200); 
    } 

Execute blinkLimited (System.currentTimeInMillis(), 2000) et que vous remarquez.

+0

Bonjour, d'abord merci pour votre réponse, Son travail! mais comment puis-je faire son arrêt si je veux faire durer l'animation pendant seulement 2 secondes? Comme vous dites son pour toujours ^^ ' –

+0

Vérifiez la réponse, 2000 est en ms égale à deux secondes, si la réponse a aidé upvote, si elle résout s'il vous plaît accepter comme correct –

+0

Merci l'homme! passez une bonne journée/soirée: D –