2011-01-31 11 views

risposta

109

Ce ne sono diversi, a seconda del tipo di lampeggiamento che intendi. È possibile, ad esempio, utilizzare l'animazione alfa e avviarla quando viene visualizzato per primo il pulsante. E quando l'utente fa clic sul pulsante, nel tuo OnClickListener basta fare clearAnimation().

Esempio:

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: grazie per la soluzione rapida. Sto imparando Android con la mia prima app e non sono riuscito a fare animazione - lo farò adesso. – ron

+0

Funzionerà anche con una voce di menu? Se è così, potrei chiedere come? – wizurd

11

È possibile utilizzare questo codice e così come si può anche decidere la tempistica batter d'pulsante tramite mAnimation.setDuration (200);. Il codice è come segue.

@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

Uomo fantastico ... Grazie per i tuoi meravigliosi sforzi. –

+3

qual è la differenza dalla risposta accettata? ctrl + c, ctrl + v –

+0

Gustavo, hai finito il tuo lavoro? Se sì allora divertiti, non prendere lo stress inutile. :) –

Problemi correlati