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 に答える