我正在尝试翻译 ImageView,每次单击时将其向下移动一步。但是,动画仅适用于第一次单击按钮;所有后续点击只会更改 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 的位置会在动画完成后快速恢复。