按钮倒下一个又一个动画Android

时间:2015-01-06 14:38:32

标签: android android-animation

我在RelativeLayout中有3个按钮,我已经为每个按钮实现了下降动画(弹跳),但所有按钮都在同时掉落。我想要的是在开始这个活动时,每个按钮应该从一个接一个地从顶部落下。我怎样才能达到这个效果。?

我的java代码

import android.animation.ObjectAnimator;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.animation.PropertyValuesHolder;
import android.view.ViewPropertyAnimator;
import android.view.animation.BounceInterpolator;
import android.widget.Button;

public class MainActivity extends Activity {
    Button ib,b2,b3;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ib = (Button) findViewById(R.id.btnAnim);
        b2 = (Button) findViewById(R.id.btnAnim2);
        b3 = (Button) findViewById(R.id.btnAnim3);
        aniMate(ib);
        aniMate(b2);
        aniMate(b3);
    }
    public void aniMate(Button b){
        ObjectAnimator animY = ObjectAnimator.ofFloat(b, "translationY", -1000f, 0f);
        animY.setDuration(1000);
        animY.setInterpolator(new BounceInterpolator());
        animY.setRepeatCount(0);
        animY.start();
    }
}

我的XML代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dip"
    tools:context=".MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/btnAnim"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/btnAnim2"
        android:layout_above="@+id/btnAnim"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/btnAnim3"
        android:layout_above="@+id/btnAnim2"
        android:layout_centerHorizontal="true" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

将AnimationListener添加到动画中。当第一个完成时,你可以开始下一个。

animation.setAnimationListener(new Animation.AnimationListener()
    {
        @Override
        public void onAnimationStart(Animation animation)
        {
            //ignore
        }

        @Override
        public void onAnimationEnd(Animation animation)
        {
            //start your next animation here
        }

        @Override
        public void onAnimationRepeat(Animation animation)
        {
            //ignore
        }
    });