1

我想为 28 个不同的视图分配 28 个不同的旋转动画,并在活动开始时启动它们。动画都应该有随机的 startOffset 和 Duration。我已经尝试使用此代码,但似乎所有动画都具有相同的值。

RotateAnimation rotate = new RotateAnimation(0.0f, 360.0f,
        Animation.RELATIVE_TO_SELF, 0.9f, Animation.RELATIVE_TO_SELF, 0.5f);

ImageView imageView;

Random r = new Random();
int delayOffset = 0;
int rotationDuration = 200;


for (int i = 0; i < ids.length; i++) {

    rotate.reset();

    imageView = (ImageView) findViewById(ids[i]);
    imageView.clearAnimation();

    delayOffset = r.nextInt(500 - 0);
    rotationDuration = r.nextInt(10000 - 200) + 200;


    rotate.setStartOffset(delayOffset);
    rotate.setDuration(rotationDuration);


    imageView.startAnimation(rotate);
}

我究竟做错了什么 ?

4

1 回答 1

0

您使用的是完全相同的动画实例,因此所有视图都以最新的值开始它。

您应该为每个视图创建一个全新的动画。

于 2012-06-17T21:49:51.133 回答