TranslateAnimation animation = new TranslateAnimation(0, 50, 0, 100);
animation.setDuration(1000);
animation.setFillAfter(false);
animation.setAnimationListener(new MyAnimationListener());
imageView.startAnimation(animation);
更新:
问题是它View
实际上仍然处于旧位置。所以我们必须在动画完成时移动它。要检测动画何时完成,我们必须创建自己的animationListener
(在我们的activity
类中):
private class MyAnimationListener implements AnimationListener{
@Override
public void onAnimationEnd(Animation animation) {
imageView.clearAnimation();
LayoutParams lp = new LayoutParams(imageView.getWidth(), imageView.getHeight());
lp.setMargins(50, 100, 0, 0);
imageView.setLayoutParams(lp);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationStart(Animation animation) {
}
}
所以onClickEvent
会在它的新地方再次被解雇。动画现在会将它向下移动,因此您可能希望将x
and保存y
在一个变量中,这样onAnimationEnd()
您就不会将其移动到固定位置。