studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android android-fragments android-animation

para - manual de programacion android pdf



Fin animación evento android (5)

Ejemplo para Kotlin

var fadeOutImage = findViewById<ImageView>(R.id.fade_out_Image) val fadeOutAnimation = R.anim.fade_out_animation val animation = AnimationUtils.loadAnimation(this, fadeOutAnimation) fadeOutImage.startAnimation(animation) animation.setAnimationListener(object : Animation.AnimationListener { override fun onAnimationStart(p0: Animation?) { // not implemented } override fun onAnimationRepeat(p0: Animation?) { // not implemented } override fun onAnimationEnd(p0: Animation?) { fadeOutImage.visibility = View.INVISIBLE } })

Tengo una animación de fadeout en una vista (que está dentro de un fragmento), y cada vez que ocurre la animación, una vez que termina, la vista se vuelve a dibujar nuevamente. Encontré un trabajo para hacer view.SetVisibility(View.GONE) . Pero no espera a que termine la animación. Me gustaría ejecutar este código de setVisibility solo después de que la animación haya terminado. ¿Cuál es la mejor manera de hacer eso?


Funcionalmente igual a la respuesta aceptada, pero de una manera mucho más concisa:

/* Add/Remove any animation parameter */ theView.animate().alpha(0).setDuration(2000).withEndAction(new Runnable() { @Override public void run() { theView.setVisibility(View.GONE); } });

Disfruta :)


Puede agregar un oyente de Animación a su objeto de animación como

anim.setAnimationListener(new Animation.AnimationListener(){ @Override public void onAnimationStart(Animation arg0) { } @Override public void onAnimationRepeat(Animation arg0) { } @Override public void onAnimationEnd(Animation arg0) { } });


Simplemente tome su objeto de animación y agréguele un oyente de animación. Aquí está el código de ejemplo:

rotateAnimation.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationEnd(Animation animation) { // TODO Auto-generated method stub **// WRITE HERE WHATEVER YOU WANT ON THE COMPLETION OF THE ANIMATION** } });