2014-09-25 68 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