我有4张动画图像,例如translate。但是我想同时为它们设置动画。没有人应该在另一个之前或之后开始。当我执行以下代码时,它不是同时开始的。有人可以提供帮助我 ?
Animation anim=AnimationUtils.loadAnimation(getActivity(), R.anim.translate);
ImageView image1=myView.findViewById(R.id.img1);
ImageView image2=myView.findViewById(R.id.img2);
ImageView image3=myView.findViewById(R.id.img3);
ImageView image4=myView.findViewById(R.id.img4);
image1.startAnimation(anim);
image2.startAnimation(anim);
image3.startAnimation(anim);
image4.startAnimation(anim);
最佳答案
您可以尝试覆盖动画的OnAnimationStart
并在其中开始下一个动画。像这样:
int counter = 0;
image1.startAnimation(anim);
anim.setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
switch(counter){
case 0: image2.startAnimation(anim);
counter++;
break;
case 1: image3.startAnimation(anim);
counter++;
break;
case 2: image4.startAnimation(anim);
counter++;
}
}
image1.startAnimation(anim);
并每次增加计数器,以启动不同的动画。
这有点麻烦,但这是我想到的最简单的方法。