0

我将 translateAnimation 实现为 imageview。

它成功动画化。

一个翻译是向上移动,另一个是向下移动。我需要在开始第二次翻译时更改图像。

我的代码是:

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:shareInterpolator="true">
<translate
    android:fromXDelta="0%" android:toXDelta="0%p"
    android:fromYDelta="0%" android:toYDelta="20%"
    android:drawable="@drawable/bs_bunny1"
    android:duration="2000" android:startOffset="100"/>
<translate 

    android:fromXDelta="0%" android:toXDelta="0%p"
    android:fromYDelta="0%p" android:toYDelta="-20%p"
    android:duration="3000" android:startOffset="100"/></set>

我将上面的动画设置为imageview。

但是我想在开始加载第二个翻译时更改图像.. 怎么做。

4

1 回答 1

1

您需要将其分成两个动画,并将 Animation.AnimationListener 注册到第一个翻译动画。在 Animation.AnimationListener 的 onAnimationEnd(Animation animation) 回调中,进行图像更改,然后开始第二个动画,如下所示:

translate.setAnimationListener(new Animation.AnimationListener() {

@Override
public void onAnimationStart(Animation animation) {
}

@Override
public void onAnimationEnd(Animation animation) {
    view.setImageResource(resId);
    view.startAnimation(translate2);
}

@Override
public void onAnimationRepeat(Animation animation) {
}
});
于 2012-04-12T07:41:16.360 回答