我动画了一个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);
答案 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。如果您的问题仅仅是关于制作视图不可见,那么你的方法应该是有效的。或者其他一次通过这些文档