如何在android中动画结束后隐藏图像

时间:2013-11-12 05:56:21

标签: java android

在我的Android应用程序中,当我点击任何一个所有图像都是动画时,我有五个图像视图。我为所有图像设置了缩小和Zoomin动画。动画完成后,所选图像视图将不可见。在图像不可见之后,当我点击该图像视图位置时,它再次启动动画并且图像不可见。

放大动画:

<scale  xmlns:android="http://schemas.android.com/apk/res/android"
  android:fromXScale="1" 
  android:toXScale="5" 
  android:fromYScale="1" 
  android:toYScale="5" 
  android:pivotX="50%" 
  android:pivotY="50%" 
  android:duration="1000" 
  android:fillAfter="true">
</scale>

缩小动画

<scale  xmlns:android="http://schemas.android.com/apk/res/android"
  android:fromXScale="5" 
  android:toXScale="1" 
  android:fromYScale="5" 
  android:toYScale="1" 
  android:pivotX="50%" 
  android:pivotY="50%" 
  android:duration="1000" 
  android:fillAfter="true">
</scale>

 zoomin =AnimationUtils.loadAnimation(this, R.anim.zoom);
 zoomout=AnimationUtils.loadAnimation(this,  R.anim.zoomout);

 ImageView v2 = (ImageView) findViewById(R.id.image2);

     v2.setOnClickListener(new View.OnClickListener() 
    {
       @Override public void onClick(View v) 
       {

          v2.setAnimation(zoomin);
          v2.startAnimation(zoomin);
          v2.setAnimation(zoomout);
          v2.startAnimation(zoomout);
          v2.clearAnimation();
      }
   });

5 个答案:

答案 0 :(得分:7)

将此代码添加到动画对象中:

animation.setAnimationListener(new AnimationListener() 
        {

            @Override
            public void onAnimationStart(Animation animation) { }

            @Override
            public void onAnimationRepeat(Animation animation) { }

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

            }
        });

答案 1 :(得分:2)

因为您添加了此问题         机器人:fillAfter = “真” 在两个动画XML文件中。

从两个XML中删除“android:fillAfter =”true“或在两个文件中保留”android:fillAfter =“false”。

答案 2 :(得分:0)

您必须处理该动画的动画侦听器。

zoomin.setAnimationListener(new AnimationListener() 
    {

        @Override
        public void onAnimationStart(Animation animation) { }

        @Override
        public void onAnimationRepeat(Animation animation) { }

        @Override
        public void onAnimationEnd(Animation animation) 
        {               
            v2.setVisibility(View.GONE);
        }
    });

答案 3 :(得分:0)

您需要使用透明图像 您需要做的就是当您的动画结束时,您需要将透明图像设置为该图像的背景/ scr,从而替换之前的图像。

更改视图的可见性 无法解决您的问题

 v2.setVisibility(View.GONE);
 v2.setVisibility(View.INVISIBLE);

如上所述导致您的观点无法点击,您将无法再次点击。

答案 4 :(得分:0)

您只需更改图层的透明度即可。

v2.setAlpha(0f);