如何在Android中动画后使ImageView不可见

时间:2014-07-22 04:50:25

标签: android animation

我动画了一个ImageView在屏幕上移动,但我希望它在完成动画时变得不可见(让它看起来像是从屏幕上移开)。

这是我尝试过的代码:

translate.setAnimationListener(new Animation.AnimationListener() {
 @Override
 public void onAnimationStart(Animation animation) {
 button.setText("Animation Started");


 }

 @Override
 public void onAnimationEnd(Animation animation) {
     brickimg.setVisibility(View.GONE);//This should make the ImageView invisible 

 }

 @Override
 public void onAnimationRepeat(Animation animation) {

 }
 });

然而,动画永远不会结束。它停留在AnimationStart上,因此在这种情况下唯一发生的事情是按钮的文本会发生变化。有没有人知道如何制作动画,或者只是让ImageView在完成动画制作后变得不可见?

编辑 - 这是我用来制作动画的代码:

int x=brickimg.getRight()-brickimg.getLeft();
   int y=brickimg.getBottom()-brickimg.getTop();
   final TranslateAnimation translate = new TranslateAnimation(
           Animation.ABSOLUTE,1000, Animation.ABSOLUTE,
           x, Animation.ABSOLUTE,0,
           Animation.ABSOLUTE,y);//How far it goes on the axis. The first x goes left, second x goes right, first y goes up, second goes down
   translate.setDuration(300);//speed of the animation
   translate.setFillEnabled(true);
   translate.setFillAfter(true); 
  brickimg.startAnimation(translate);

2 个答案:

答案 0 :(得分:0)

您可以在AnimationEnd上设置透明图像..

  @Override
        public void onAnimationEnd(Animation animation) 
        {
            v2.setImageResource(R.drawable.some_transparent_image);

        }

答案 1 :(得分:0)

这取决于你正在做什么样的动画。如果你正在使用View Animation类。那么你创建的动画不是在初始图像上完成的。例如,从A点开始的图像上的平移动画到B点创建上述动画。但原始图像仍然卡在同一个地方。即在A点。一旦动画结束,它将返回那里。如果您想要影响ImageView的动画,您需要使用更加可自定义且更难实现Property Animation。如果您的问题仅仅是关于制作视图不可见,那么你的方法应该是有效的。或者其他一次通过这些文档