При переводе матрицы, используемой для рисования растрового изображения, он рисует несколько растровых изображений - PullRequest
1 голос
/ 24 июля 2011

В моем проекте Android у меня есть матрица, которую я использую для рисования растрового изображения на холсте. Во время моего метода drawFrame я перевожу матрицу в направлении Y, чтобы она выглядела так, как будто растровое изображение движется вверх. Он действительно движется вверх, но он также рисуется в предыдущей позиции, оставляя позади себя кратные. Вот мой код drawFrame:

Canvas canvas = null;
canvas = holder.lockCanvas();

Matrix moveMatrix = new Matrix ();
moveMatrix.postTranslate(0, 10);
matrix.preConcat(moveMatrix);

canvas.drawBitmap(bitmap, matrix, null);

holder.unlockCanvasAndPost(canvas);

"матрица" является глобальным членом Matrix.

Кто-нибудь знает, почему это оставляет «полосатый» след растровых изображений по экрану?

Спасибо!

Я забыл упомянуть, что каждая предыдущая позиция растрового изображения, кажется, смещается вверх и вниз в направлении y при каждом перемещении растрового изображения. Таким образом, он заканчивается строкой растровых изображений, которые выглядят так, как будто они дрожат вверх и вниз. Это будет означать, что каждое растровое изображение придется перерисовывать каждый кадр, иначе они все будут стоять на месте.

1 Ответ

1 голос
/ 24 июля 2011

Вам нужно очистить Canvas в предыдущей позиции растрового изображения:)

...