Sto realizzando un'app per le gallerie di immagini. Attualmente ho una visione d'immagine con una vista testuale in basso. Attualmente è solo semitrasparente. Voglio farlo dissolvenza, attendere 3 secondi, quindi svanire del 90%. Concentrandosi su di esso o caricando una nuova immagine, si ripeterà il ciclo. Ho letto attraverso una dozzina di pagine e ho provato alcune cose, senza successo. Tutto ciò che ottengo è una dissolvenza in apertura e dissolvenza immediataAnimazione TextView - dissolvenza in entrata, attesa, dissolvenza
risposta
È possibile utilizzare un oggetto di animazione aggiuntivo (che non modifica l'alfa) per impedire la dissolvenza istantanea, impostare animationListener per l'effetto di dissolvenza in apertura e avviare l'oggetto di animazione extra nell'animazione onEnd della dissolvenza in apertura , poi si inizia fade-out sull'estremità animazione dell'oggetto di animazione in più, provare sul link qui sotto, ti aiuto ..
protected AlphaAnimation fadeIn = new AlphaAnimation(0.0f , 1.0f) ;
protected AlphaAnimation fadeOut = new AlphaAnimation(1.0f , 0.0f) ;
txtView.startAnimation(fadeIn);
txtView.startAnimation(fadeOut);
fadeIn.setDuration(1200);
fadeIn.setFillAfter(true);
fadeOut.setDuration(1200);
fadeOut.setFillAfter(true);
fadeOut.setStartOffset(4200+fadeIn.getStartOffset());
Funziona perfettamente per sfondi bianchi. Altrimenti, è necessario cambiare i valori quando si istanzia la classe AlphaAnimation
. In questo modo:
AlphaAnimation fadeIn = new AlphaAnimation(1.0f , 0.0f);
AlphaAnimation fadeOut = new AlphaAnimation(0.0f , 1.0f);
Questo funziona con sfondo nero e colore del testo bianco.
Questa è la soluzione che ho usato nel mio progetto per il looping dissolvenza -in/fade-out animazione su TextViews:
private void setUpFadeAnimation(final TextView textView) {
// Start from 0.1f if you desire 90% fade animation
final Animation fadeIn = new AlphaAnimation(0.0f, 1.0f);
fadeIn.setDuration(1000);
fadeIn.setStartOffset(3000);
// End to 0.1f if you desire 90% fade animation
final Animation fadeOut = new AlphaAnimation(1.0f, 0.0f);
fadeOut.setDuration(1000);
fadeOut.setStartOffset(3000);
fadeIn.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationEnd(Animation arg0) {
// start fadeOut when fadeIn ends (continue)
textView.startAnimation(fadeOut);
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationStart(Animation arg0) {
}
});
fadeOut.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationEnd(Animation arg0) {
// start fadeIn when fadeOut ends (repeat)
textView.startAnimation(fadeIn);
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationStart(Animation arg0) {
}
});
textView.startAnimation(fadeOut);
}
Spero che questo possa aiutare!
Ancora niente ???? –