Java 如何在android中隐藏动画结束后的图像
在我的android应用程序中,当我单击其中任何一个时,我有五个图像视图,所有图像都是动画。我为所有图像设置了zoomout和Zoomin动画。动画完成后,选定的图像视图将不可见。在“图像不可见”之后,当我单击该imageview位置时,它会再次启动动画,并且图像不可见 放大动画: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
<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中随心所欲。如果你想让图像仍然可以点击,可以尝试将背景替换为透明的。是的,这应该是解决方案。