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-прямоугольник также должен будет увеличиваться/уменьшаться в зависимости от угла поворота, иначе бимап будет казаться меньше, поскольку он нарисован в фиксированный dst-прямоугольник. Поэтому я предполагаю, что мне придется разработать какой-то метод, который будет возвращать 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

5
задан Luke Taylor 28 July 2012 в 16:12
поделиться