myViewに現在の位置からdeltaX、deltaYピクセルを移動させたい。しかし、それは私が望むより2倍長く動きます。これは、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);
}
}