Я новичок в разработке Android и встречаюсь с жесткой проблемой при попытке реализовать графический чертеж на представлении.Метод просмотра onDraw вызывается снова и снова на Android 2.2
Что я хочу сделать, это рисовать диаграмму в представлении. Я помещаю View в ScrollView и переопределяю метод onDraw View и делаю рисование на onDraw. Самое главное, что диаграмме нужны функции прокрутки. Метод I override метода View on включает в себя вычисление координат и рисование многих необходимых элементов (линия, точка, ось, метка и т. Д.) В диаграмме. Как вы можете себе представить, я вычисляю и рисую всю диаграмму не только видимой областью, но и всей областью, в том числе за кадром. Теперь проблема заключается в том, что метод onDraw вызывается снова и снова при прокрутке ScrollView, так что он вызывает проблему с производительностью, а представление прокрутки работает очень медленно. Я пытался найти способ предотвратить вызов onDraw после первого звонка, но не повезло. Я должен рассчитать одно и то же снова и снова, как только onDraw получит вызов, который не нужен.
У вас есть ответ? Благодарю.
Надеюсь, вы не используете их, поскольку они не являются публичными API. Публичные API для извлечения смещения прокрутки: http://developer.android.com/reference/android/view/View.html#getScrollX() – hackbod
Вы имеете в виду, что мне еще нужно пересчитать видимую область? Я предпочитаю, чтобы он был рассчитан только один раз после первого представления пользователю, потому что весь холст одинаковый все время, пока пользователь просматривает его, и я думаю, что он тратит время на его пересчет, и на самом деле это вызывает проблему производительности, даже если Я просто нарисую на нем прямоугольник. В любом случае, чтобы избежать вычисления этого снова и снова при прокрутке? –