Поворот и масштабирование пропорционально с использованием матрицы - PullRequest
0 голосов
/ 27 августа 2018

Изначально у меня есть следующие значения для рисования ovel,

RectF(0.0, 0.0, 164.0, 1112.0)
Matrix{[1.0, 0.0, 370.97623][0.0, 1.0, 196.02643][0.0, 0.0, 1.0]}
bitmap = Bitmap.createBitmap((int) rect.width(), (int) rect.height(), Bitmap.Config.ARGB_8888);
bitmap.eraseColor(getColor());

Вот метод onDraw,

canvas.drawBitmap(bitmap, matrix, null);
canvas.save();
canvas.concat(matrix);
canvas.drawOval(0, 0, bitmap.getWidth(), bitmap.getHeight(), mPaint);

Теперь я получаю следующие sc:

enter image description here

после этого я изменяю значения матрицы следующим образом (на самом деле я пытаюсь повернуть)

Matrix{[0.93802166, 0.37798083, 57.083317][-0.37798083, 0.93802166, 278.4423][0.0, 0.0, 1.0]}

И я применяю mapRect к этой матрице, как показано ниже,

RectF rectF2 = new RectF();
matrix.mapRect(rectF2, this.rectF);

И мой rect2 это RectF(57.083317, 216.45343, 631.2335, 1321.5223)

Теперь я снова создаю растровое изображение, используя этот прямоугольник, как исходный код, и делаю недействительным представление, и теперь я получаю следующее sc:

enter image description here

Но если я не воссоздал растровое изображение, я получаю следующее SC:

enter image description here

На самом деле я хочу только этого, Как я могу добиться этого, используя текущий прямоугольник.

...