Как нарисовать на растровое изображение в Android? - PullRequest
11 голосов
/ 12 ноября 2010

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

Bitmap b = ...
Paint p = new Paint();
canvas.drawBitmap(b, new Matrix(), null);
canvas.drawCircle(0,0,20,20);
//does Bitmap b have the circle drawn on it next time?

Или как получить растровое изображение после его рисования на холсте (я хочу сохранить стек растровых изображений с изменениями, примененными к рисованию холста)? Может быть, я поступаю по этому поводу совершенно неправильно.

Ответы [ 2 ]

18 голосов
/ 12 ноября 2010

Используйте new Canvas(Bitmap bitmap) для предоставления Canvas с Bitmap, который будет содержать результат ваших операций рисования.

Оригинальный Bitmap, который вы рисуете на своемCanvas с drawBitmap никогда не изменится.

После каждой пользовательской операции вы можете:

  • сохранить в памяти список выполненных операций
  • сохранение промежуточных результатов во внешнем хранилище с помощью Bitmap.compress

Другим подходом может быть использование LayerDrawable для наложения последовательных операций рисования друг на друга.Вы можете позволить пользователю отключить каждую отдельную операцию.

0 голосов
/ 10 мая 2017

Вы можете увидеть полное руководство по рисованию текста здесь:

https://www.skoumal.net/en/android-how-draw-text-bitmap/

Короче говоря:

Скопируйте ваше растровое изображение, чтобы сделать его изменчивым и создать на основе Canvasв теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...