Логика о onDraw ImageView

#android

#Android

Вопрос:

Класс MyImageView расширил ImageView, в методе onDraw() у меня есть следующий код:

 @Override
protected void onDraw(Canvas canvas) {
    this.setImageBitmap(someBitmap);
    super.onDraw(canvas);
}
  

Хотя код работает, мне интересно, почему onDraw не вызывается бесконечно, поскольку setImageBitmap вызовет onDraw —> правильно или нет? Я все еще хочу знать, есть ли проблемы с производительностью для приведенного выше кода?

Ответ №1:

setImageBitmap() вызовет invalidate(), который, в свою очередь, позже вызовет onDraw() . То, что вы делаете, действительно плохая идея 🙂

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

1. Да, это плохая идея. на самом деле, хотя пользовательский интерфейс отображается правильно. Я вижу, что метод onDraw() вызывался бесконечно по информации журнала.