1

我正在制作一个在按下按钮时旋转的物体,我希望它旋转 360 度,然后继续旋转一个随机数,这样它每次都会落在不同的地方。这就是我的 xml 文件(称为动画)中的内容,它完美地旋转了 360。

    <rotate 
    android:fromDegrees = "0"
    android:toDegrees = "360"
    android:pivotX = "50%"
    android:pivotY = "50%"
    android:startOffset = "0"
    android:duration = "1000" />

我只需要生成随机值背后的逻辑帮助。

这也是它在我的java中出现的方式

 but_spin = (Button)  findViewById(R.id.spin_but);
 final Context mcontext = this;
 but_spin.setOnClickListener(new View.OnClickListener() {
 public void onClick(View arg0) {
      ImageView animated = (ImageView) findViewById(R.id.big_button);
      anime = AnimationUtils.loadAnimation(mcontext, R.anim.anime);
      animated.startAnimation(anime);  
      }}
    );
4

3 回答 3

6

你不能在 XML 中做到这一点。手动编码动画,

static final Random R = new Random(System.currentTimeMillis());
...
Animation a = new RotateAnimation(0, 360 + R.nextInt(180));
ImageView animated = (ImageView) findViewById(R.id.big_button);
animated.startAnimation(a);

有关详细信息,请参阅RotateAnimationAPI 文档。

于 2012-11-08T02:20:40.437 回答
1

您不能在 XML 文件中生成随机数。

从代码创建一个 RotateAnimation。

于 2012-11-08T02:15:34.053 回答
0

XML 布局文件包含在应用执行期间不会更改的静态数据。您将需要使用 Java 代码生成一个随机数并根据该值旋转您的可绘制对象。

于 2012-11-08T02:18:59.597 回答