我想让小行星在我的Android游戏中恒定旋转,但我完全不知道从哪里开始。
我知道我可以旋转画布,但是我找不到一个数学公式可以在将画布旋转任何角度后在哪里绘制对象,因此还原画布后应该在哪里。
我的意思是我只在90度,180度,270度时才知道,您能帮我一下吗?我只需要一个提示。
感谢您的帮助!
编辑:我终于想通了canvas.rotate()
最佳答案
您可以将动画XML文件中的内置android.R.anim.linear_interpolator
与android:interpolator="@android:anim/linear_interpolator"
一起使用
您可以这样使用它:
<?xml version="1.0" encoding="UTF-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="3000"
android:fromDegrees="0"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:toDegrees="359" />
使用java:
//Rotate Asteroids
ImageView mAsteroids = (ImageView) findViewById(R.Id.Asteroids);
mAsteroids.setDrawingCacheEnabled(true);
rAnim = new RotateAnimation(0.0F, 359.0F, Dimension.RelativeToSelf, 0.5F, Dimension.RelativeToSelf, 0.5F);
rAnim.Interpolator = new LinearInterpolator();
rAnim.RepeatCount = Animation.Infinite;
rAnim.Duration = 1500; //<-- you duration
mAsteroids.StartAnimation(rAnim);