我想让 myView 从当前位置移动 deltaX、deltaY 像素。但它移动的时间是我想要的两倍。这是由 onAnimationEnd 中的 setLayoutParams 引起的。没有它,myView 的真实位置不会改变。如何更改 myView 的真实位置并正常设置动画?
class MyLayout extends RelativeLayout {
Animation animation;
MyView myView;
animation = new TranslateAnimation(0, deltaX, 0, deltaY);
animation.setDuration(100);
animation.setFillAfter(true);
myView.startAnimation(animation);
}
class MyView extends ImageView {
protected void onAnimationEnd() {
super.onAnimationEnd();
LayoutParams params = (LayoutParams)getLayoutParams();
params.leftMargin += deltaX;
params.topMargin += deltaY;
setLayoutParams(params);
}
}