Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Android: нарисуйте растровое изображение поверх другого, применив матрицу

Автор вопроса: decadesОтветов: 1

У меня есть изображение, в котором используется матрица для масштабирования / перетаскивания изображения. Теперь я хочу наложить другое изображение. Матричное преобразование следует применять к комбинации фона и наложения.

Я перезаписал onDraw и использовал

    canvas.drawBitmap(overlay, matrix, null);

в то время как оверлей - это новый оверлей, матрица - это текущая применяемая матрица. Это прекрасно работает. К сожалению, я не могу указать смещение, при котором наложение должно отображаться поверх фона. Это работает

    canvas.drawBitmap(overlay, 50, 10, null);

но наложение остается в этом положении, как только я снова рисую и масштабирую фон ...

Как выполнить смещение при рисовании растрового изображения с примененной матрицей?

С Уважением

androidbitmapmatrix

Ответы

Ответ 1 · Lumis

Возможно, вам потребуется создать новое растровое изображение подходящего размера, где ваше наложение будет сохранено с матричным преобразованием. Что-то типа:

Bitmap overlay2 = Bitmap.createBitmap(....)

Canvas c2 = new Canvas(overlay2);

c2.drawBitmap(overlay, matrix, null);

canvas.drawBitmap(overlay2, 50, 10, null);

Другой способ, возможно, лучше - это сделать canvas.translate:

canvas.save();
canvas.translate(50,10);
canvas.drawBitmap(overlay, matrix, null);
canvas.restore();

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы