私は他の質問を参照しましたが、解決策を見つけることができませんでした。TranslateAnimationの後の位置に永続的にImageViewを設定する方法
ImageViewでTranslateAnimationを実装しましたが、アニメーションが終了すると元の位置に戻ります。 Override onAnimationEndを使用しましたが、うまくいかないようです。誰かが私は何をしなければならないのか理解できますか?
public class PackAnimation extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pack_animation);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
String s = getIntent().getStringExtra("CHOICE");
final ImageView pandya = (ImageView) findViewById(R.id.pandya);
final int amountToMoveRight = 600;
final int amountToMoveDown = 0;
TranslateAnimation anim = new TranslateAnimation(0, amountToMoveRight, 0, amountToMoveDown);
anim.setDuration(100);
anim.setAnimationListener(new TranslateAnimation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) { }
@Override
public void onAnimationRepeat(Animation animation) { }
@Override
public void onAnimationEnd(Animation animation)
{
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)pandya.getLayoutParams();
params.topMargin += amountToMoveDown;
params.leftMargin += amountToMoveRight;
pandya.setLayoutParams(params);
}
});
pandya.startAnimation(anim);
}
}
ViewPropertyAnimatorについて言及してくれてありがとう、私が働いている文脈では、これが最良のアプローチだと思う。 –
お寄せください。 :) – Bob