回転するビットマップを中心に描画し、ビットマップのサイズを変更せずに回転させようとしています。私はすべてのスプライトをゲームスレッド経由で画面に描画していますので、キャンバスではなく元のビットマップを組み込んだソリューションを探しています。Androidはリサイズなしでビットマップを中心に回転します
ありがとうございます。
これはこれまでのコードですが、中心付近でビットマップを反転させていますが、サイズを変更しています。
i = i + 2;
transform.postRotate(i, Assets.scoresScreen_LevelStar.getWidth()/2, Assets.scoresScreen_LevelStar.getHeight()/2);
Bitmap resizedBitmap = Bitmap.createBitmap(Assets.scoresScreen_LevelStar, 0, 0, Assets.scoresScreen_LevelStar.getWidth(), Assets.scoresScreen_LevelStar.getHeight(), transform, true);
game.getGraphics().getCanvasGameScreen().drawBitmap(resizedBitmap, null, this.levelStar.getHolderPolygons().get(0), null);
更新:
私は、これはそれが思ったほど簡単ではありません気づきました。私の回転コードは問題ではありません。ビットマップは回転しますが、回転角に応じてdst rectも増減する必要があります。そうしないと、bimapは固定dst rectに描画されるため、小さく表示されます。 私はdst rectを返すいくつかのメソッドを開発しなければならないと思います。 そうせずにビットマップを回転させるために必要な方法はリサイズ登場:
public static Bitmap rotateBitmap(Bitmap bitmap, int rotation) // I've got this method working
と
public static Rect rotateRect(Rect currentDst, int rotation) // Don't got this
を私は挑戦のために、これはいくつかの数学(トリグ)が必要になります誰を理解できますか? :P
これまでに何を試しましたか?あなたのために働いていないもののいくつかの例を投稿できますか? –
ストレートAndroidまたはCocos2d-x? – Fallenreaper
@Fallenreaperというコードで質問を更新しました。私は自分のGEを使用していますので、まっすぐなAndroidです。 –