我有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);


并每次增加计数器,以启动不同的动画。
这有点麻烦,但这是我想到的最简单的方法。

07-24 09:22