android中的动画在动画完成后暂停图像?

时间:2013-03-13 10:17:22

标签: android android-animation

我在android中为两个按钮创建了一个动画。按钮1从屏幕的底部中心向屏幕中心垂直向上移动(比如在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);

1 个答案:

答案 0 :(得分: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);
            }
        });

希望它有所帮助。