温馨提示×

android animatorset 动画怎么组合

小樊
81
2024-11-27 08:22:45
栏目: 编程语言

在Android中,要组合多个动画,可以使用AnimatorSetAnimatorSet允许你同时执行多个动画,并控制它们的执行顺序。以下是一个简单的示例,展示了如何使用AnimatorSet组合两个动画:

  1. 首先,创建一个XML文件(例如animation_set.xml),用于定义动画:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="0%p"
        android:toXDelta="100%p"
        android:duration="1000" />
    <scale
        android:fromXScale="1.0"
        android:toXScale="1.5"
        android:fromYScale="1.0"
        android:toYScale="1.5"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="1000" />
</set>

在这个例子中,我们定义了一个平移动画和一个缩放动画,它们都将持续1秒。

  1. 然后,在你的Activity或Fragment中,使用AnimatorSet加载并执行这个动画:
import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        View view = findViewById(R.id.your_view);

        // 创建AnimatorSet
        AnimatorSet animatorSet = new AnimatorSet();

        // 从XML文件中加载动画
        animatorSet.play(ObjectAnimator.ofFloat(view, "translationX", 0f, 100f))
                .with(ObjectAnimator.ofFloat(view, "scaleX", 1f, 1.5f))
                .with(ObjectAnimator.ofFloat(view, "scaleY", 1f, 1.5f));

        // 开始动画
        animatorSet.start();
    }
}

在这个例子中,我们首先创建了一个AnimatorSet实例,然后使用play()方法将平移动画、缩放X动画和缩放Y动画添加到AnimatorSet中。最后,我们调用start()方法开始动画。

你可以根据需要添加更多的动画,并通过调整AnimatorSet的方法(如startDelay()setDuration()等)来控制动画的执行顺序和持续时间。

0