Я хочу повернуть растровое изображение на основе щелчка пользователя на 10 градусов. Следуя многочисленным ответам stackoverflow и google, я пробовал различные комбинации вращения Matrix.
Однако изображение на самом деле не вращается, как ожидалось, и дает дрожащее представление о вращении + колебании вокруг центра холста. Для проверки я увеличиваю угол поворота на 10 градусов (вместо щелчков) каждый раз, когда вызывается метод рисования объекта. Изображение представляет собой симметричный круг [окружающий прямоугольник 64x64], и я ожидаю, что оно будет вращаться в центре экрана вокруг своего собственного центра, как колесо, но оно вращается и перемещается по диагонали вправо-вниз и возвращается к центру экрана колебательным образом. .
public void draw(Canvas canvas) {
Matrix matrix = new Matrix();
rotation += 10;
float px = this.viewWidth/2;
float py = this.viewHeight/2;
matrix.setRotate(rotation, bitmap.getWidth()/2, bitmap.getHeight()/2);
Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, getImgWidth(), getImgHeight(), matrix, true);
canvas.drawBitmap(newbmp, px - (getImgWidth()/2), py - (getImgHeight()/2), null);
}