2011-01-31 2 views

Répondre

109

Il y en a plusieurs, selon le type de clignotant que vous voulez dire. Vous pouvez, par exemple, utiliser une animation alpha et la démarrer dès que votre bouton apparaît. Et lorsque l'utilisateur clique sur le bouton, dans votre OnClickListener il suffit de faire clearAnimation().

Exemple:

public void onCreate(Bundle savedInstanceState) { 
    final Animation animation = new AlphaAnimation(1, 0); // Change alpha from fully visible to invisible 
    animation.setDuration(500); // duration - half a second 
    animation.setInterpolator(new LinearInterpolator()); // do not alter animation rate 
    animation.setRepeatCount(Animation.INFINITE); // Repeat animation infinitely 
    animation.setRepeatMode(Animation.REVERSE); // Reverse animation at the end so the button will fade back in 
    final Button btn = (Button) findViewById(R.id.your_btn); 
    btn.startAnimation(animation); 
    btn.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(final View view) { 
      view.clearAnimation(); 
     } 
    }); 
} 
+2

Alex: merci pour la solution rapide. J'apprends Android avec ma première application et je n'avais pas encore d'animation - je vais le faire maintenant. – ron

+0

Cela fonctionnera-t-il également avec un élément de menu? Si oui, pourrais-je demander comment? – wizurd

11

Vous pouvez utiliser ce code et ainsi que vous pouvez également décider le moment de clignotement de la touche par mAnimation.setDuration (200);. Le code est le suivant.

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

    select=(Button)findViewById(R.id.bSelect); 
    Animation mAnimation = new AlphaAnimation(1, 0); 
    mAnimation.setDuration(200); 
    mAnimation.setInterpolator(new LinearInterpolator()); 
    mAnimation.setRepeatCount(Animation.INFINITE); 
    mAnimation.setRepeatMode(Animation.REVERSE); 
    select.startAnimation(mAnimation); 
    select.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      v.clearAnimation(); 


     } 
    }); 

} 
+1

Un homme génial ... Merci pour vos efforts merveilleux. –

+3

Quelle est la différence avec la réponse acceptée? ctrl + c, ctrl + v –

+0

Gustavo, Est-ce que votre travail a été fait? Si oui, alors profitez, ne prenez pas de stress inutile. :) –

Questions connexes