Очистить предыдущий холст, работающий с RecyclerView на Android - PullRequest
0 голосов
/ 13 февраля 2020

Я рисую пользовательские овалы, используя canvas в Android следующим образом. Фактически каждая фигура является видом и создается с помощью RecyclerView. Когда я нажимаю любую фигуру, я рисую другой овал с атрибутом stroke (белый).

Что я хочу сделать здесь, так это удалить предыдущий овал границы всякий раз, когда я касаюсь другой фигуры и рисую для нее границу. Есть ли у вас какие-либо идеи? Спасибо.

Код для рисования фигуры:

override fun drawOval(canvas: Canvas) {
    canvas.drawOval(shapeRectF, shapePaint)
}

enter image description here

1 Ответ

0 голосов
/ 13 февраля 2020

Полагаю, у вас есть список моделей. В каждой модели вам необходимо указать isSelected: Boolean. Когда вам нужно нарисовать обводку, вы устанавливаете isSelected = true для нужного элемента и isSelected = false для элемента, который хотите удалить предыдущую рамку. Затем установите новые данные для адаптера.

У вас ViewHolder рисует ход, если isSelected == true

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