ImageView を翻訳して、クリックするたびに 1 ステップずつ下に移動しようとしています。ただし、アニメーションは最初のボタン クリックに対してのみ機能します。その後のすべてのクリックは、アニメーションなしで ImageView の位置を変更するだけです。
ここに私の move_down.xml ファイルがあります:
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0%"
android:toYDelta="100%"
android:duration="500"
/>
main.xml でのボタンの宣言は次のとおりです。
<Button
android:id="@+id/bGo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go"
android:onClick="startAnimation" />
ここに私の startAnimation 関数があります:
public void startAnimation(View view) {
Animation test = AnimationUtils.loadAnimation(this, R.anim.move_down);
character.startAnimation(test);//This is the ImageView I'm trying to animate
test.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {}
public void onAnimationRepeat(Animation animation) {}
public void onAnimationEnd(Animation animation) {
character.setY(character.getY() + character.getHeight());
}
});
}
行をコメントアウトしたとき
character.setY(character.getY() + character.getHeight());
アニメーションは機能しますが、アニメーションが終了すると ImageView の位置が元に戻ります。