Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中隐藏动画结束后的图像_Java_Android - Fatal编程技术网

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

Java 如何在android中隐藏动画结束后的图像,java,android,Java,Android,在我的android应用程序中,当我单击其中任何一个时,我有五个图像视图,所有图像都是动画。我为所有图像设置了zoomout和Zoomin动画。动画完成后,选定的图像视图将不可见。在“图像不可见”之后,当我单击该imageview位置时,它会再次启动动画,并且图像不可见 放大动画: <scale xmlns:android="http://schemas.android.com/apk/res/android" android:fromXScale="1" android:to

在我的android应用程序中,当我单击其中任何一个时,我有五个图像视图,所有图像都是动画。我为所有图像设置了zoomout和Zoomin动画。动画完成后,选定的图像视图将不可见。在“图像不可见”之后,当我单击该imageview位置时,它会再次启动动画,并且图像不可见

放大动画:

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

zoomin=AnimationUtils.loadAnimation(这是R.anim.zoom);
zoomout=AnimationUtils.loadAnimation(this,R.anim.zoomout);
ImageView v2=(ImageView)findViewById(R.id.image2);
v2.setOnClickListener(新视图.OnClickListener()
{
@覆盖公共void onClick(视图v)
{
v2.设置动画(缩放);
v2.开始动画(缩放);
v2.设置动画(zoomout);
v2.startAnimation(zoomout);
v2.clearAnimation();
}
});

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

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

            }
        });

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

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

您需要使用透明图像 您只需在动画结束时将透明图像设置为该图像的背景/scr,从而替换上一个

更改视图的可见性不会解决问题

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

由于以上两种原因,您的视图将无法单击,您将无法再次单击。

由于您添加了 android:fillAfter=“true” 在这两个动画XML文件中


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

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

v2.setAlpha(0f);

他提到,如果他在图像消失后单击该图像的位置,则该图像必须再次出现并设置动画。根据我们的解决方案,如果可见性消失,如何再次执行该操作?您可以在onAnimationEnd中随心所欲。如果你想让图像仍然可以点击,可以尝试将背景替换为透明的。是的,这应该是解决方案。