我正在制作一个按下按钮时旋转的物体,我希望它旋转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);
}}
);
答案 0 :(得分: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);
有关详细信息,请参阅RotateAnimation
API文档。
答案 1 :(得分:1)
您无法在XML文件中生成随机数。
从代码创建一个RotateAnimation。
答案 2 :(得分:0)
XML布局文件包含在应用程序执行期间不会更改的静态数据。您将需要使用Java代码生成随机数,并根据该值旋转您的drawable。