2014-09-25 71 views
1

我想让我的小行星在我的android游戏中constatly旋转,但我完全不知道从哪里开始。光滑的位图旋转android SurfaceView

我知道我可以旋转画布,但是我无法找到一个数学公式,画布以任意角度旋转后绘制对象的位置,以便在恢复画布之后它应该在哪里。

我的意思是我计算出只有90,180,270度,你能帮我一下吗?我只需要一个提示。

感谢您的帮助!

编辑:我终于只是canvas.rotate()

+0

采用了矩阵API的考试ple Matrix.mapPoints – pskink 2014-09-25 09:29:06

回答

0

您可以使用内置的android.R.anim.linear_interpolator从动画XML文件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); 
+0

嗨,谢谢你的回答! 它在xml中,但我应该把它放在哪里?我的布局?我不使用xml不幸的是:D – Greyshack 2014-09-25 09:27:52

+0

我编辑了我的答案,看看它 – 2014-09-25 09:44:13

+0

你是男人!我会试试 编辑:好,所以基本上我不知道“加载”是什么,也没有找到维因为某些原因。 有没有办法给ImageView一个位图?因为我根据屏幕分辨率缩放位图,如果可能,我想旋转缩放和加载的位图 – Greyshack 2014-09-25 09:47:41