在Android中,要组合多个动画,可以使用AnimatorSet
。AnimatorSet
允许你同时执行多个动画,并控制它们的执行顺序。以下是一个简单的示例,展示了如何使用AnimatorSet
组合两个动画:
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秒。
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()
等)来控制动画的执行顺序和持续时间。