结束animation事件android

我在一个视图(这是一个片段内)有一个淡出的animation,每次animation发生时,视图完成后,视图重新绘制自己。 我发现了一个围绕view.SetVisibility(View.GONE) 。 但它不等待animation完成。 我只想在animation完成后才执行这个setVisibility代码。 什么是最好的办法呢?

您可以将animation侦听器添加到您的animation对象中

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

在function上与接受的答案相同,但是以更简洁的方式:

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

请享用 :)

你也可以使用Animation.setFillAfter来实现这个

简单地把你的animation对象,并添加animation侦听器。 以下是示例代码:

 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** } });