0

我在 android 中为两个按钮创建动画。Button1 从底部中心垂直向上移动到屏幕中心(比如 2 秒)。一旦到达那里,图像应该在那里 2 秒。然后是第二个图像当第一个按钮仍然存在时,从屏幕的 center_right 侧移动到屏幕的 center_left 侧。有人可以告诉我如何让第一个图像在屏幕上显示一段时间。以下是我的代码:

R.anim.alpha

<?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate 
            android:fromYDelta="200%p" 
            android:toYDelta="-11%p" 
            android:duration="3000"
            android:repeatCount="infinite"
            />
    </set>

R.anim.anim_card

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
      android:fromXDelta="600%"
    android:toXDelta="-100%"
    android:repeatCount="infinite"
    android:duration="4000"
    android:fillAfter="true"
    />
</set>

在 Java 代码中:

 Animation a = AnimationUtils.loadAnimation(this, R.anim.alpha);
    a.reset();
    _image.clearAnimation();
    _image.startAnimation(a);

    Animation b =AnimationUtils.loadAnimation(this, R.anim.anim_card);
            b.reset();
            btn_card.clearAnimation();
            btn_card.startAnimation(b);
4

1 回答 1

0

为此,您将不得不使用 AnimationListener:

 Animation a = AnimationUtils.loadAnimation(this, R.anim.alpha);
 a.reset();
 _image.clearAnimation();
 _image.startAnimation(a);

 Animation b =AnimationUtils.loadAnimation(this, R.anim.anim_card);
 b.reset();

 a.setAnimationListener(new AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationRepeat(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                // TODO Auto-generated method stub
            btn_card.clearAnimation();
            btn_card.startAnimation(b);
            }
        });

希望能帮助到你。

于 2013-03-13T10:20:00.407 回答