在多个ImageView上旋转动画

时间:2012-06-17 21:21:08

标签: java android animation rotation duration

我想为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);
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

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

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