Как удалить нарисованную линию в Android

#android #graphics #line #android-canvas #draw

#Android #графика #строка #android-холст #рисовать

Вопрос:

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

Возможно ли это в Android? Есть ли какой-либо доступный метод для удаления нарисованной линии.

Ответ №1:

Вы рисуете линии с помощью Canvas.drawLine ? В api нет такого понятия, как «удалить нарисованную линию».

Я могу представить пару вариантов:

  • Снова нарисуйте ту же линию, используя цвет фона, чтобы «стереть ее»
  • Снова нарисуйте весь экран, но на этот раз без рисования линий

Комментарии:

1. привет, спасибо за твой ответ. если цвет фона такой же, значит, все в порядке. но моя фоновая тема содержит другой цвет. В этом я не могу нарисовать ту же линию, используя цвет фона. Есть ли другой вариант?

2. @Mobila заново нарисуйте весь экран заново. возможно, вам потребуется взглянуть на то, как реализовать двойную буферизацию, хотя в Интернете есть много статей об этом

Ответ №2:

Как упоминалось выше, нет способа удалить нарисованную линию. Однако вы можете сделать следующее: 1) Сделайте копию исходного изображения (исходное изображение = img1; дубликат = img2), используя Bitmap.copy. Скопируйте ее в конфигурацию.ARGB_8888, который делает ее изменяемой. 2) Нарисуйте линии на вновь созданном изображении с помощью canvas.DrawLine () 3) Если вы хотите вернуться к своему старому изображению без линий, отобразите img1 и переработайте img2.

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