在 Android 中,AnimatorSet
允许你组合多个动画并控制它们的执行顺序。要使 AnimatorSet
同步执行动画,你可以使用以下方法:
AnimatorSet
中。start()
方法启动 AnimatorSet
。以下是一个简单的示例,展示了如何使用 AnimatorSet
同步执行动画:
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private View view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
view = findViewById(R.id.my_view);
// 创建一个 AnimatorSet
AnimatorSet animatorSet = new AnimatorSet();
// 创建一个 ObjectAnimator,使 view 的宽度在 1 秒内变为 200px
ObjectAnimator widthAnimator = ObjectAnimator.ofInt(view, "width", 100, 200);
widthAnimator.setDuration(1000);
// 创建另一个 ObjectAnimator,使 view 的透明度在 1 秒内变为 0.5
ObjectAnimator alphaAnimator = ObjectAnimator.ofFloat(view, "alpha", 1f, 0.5f);
alphaAnimator.setDuration(1000);
// 将两个动画添加到 AnimatorSet 中
animatorSet.playTogether(widthAnimator, alphaAnimator);
// 设置动画监听器
animatorSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
super.onAnimationStart(animation);
System.out.println("动画开始");
}
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
System.out.println("动画结束");
}
});
// 启动 AnimatorSet
animatorSet.start();
}
}
在这个示例中,我们创建了一个 AnimatorSet
,并向其中添加了两个动画:一个改变视图宽度的动画和一个改变视图透明度的动画。通过调用 playTogether()
方法,我们将这两个动画设置为同步执行。最后,我们使用 start()
方法启动 AnimatorSet
。