Android Canvas Lagging
Я создаю проект для класса, и у меня возникают некоторые проблемы с задержкой. Когда карта загружена, либо ничего не произойдет, поэтому вы должны вернуться и перезагрузить ее, и она будет работать какое-то время или после выполнения некоторых действий, мой телефон / эмулятор займет пару секунд, пока вы не сможете сделать следующий шаг. Вот как я настраиваю свои классы:
У меня есть класс карты в качестве основного контроллера. Есть разные карты, но все они работают одинаково. Класс карты устанавливает вид содержимого из макетов, как обычно, с пустым относительным макетом, и он создает узлы, линии и имеет класс правил игры, чтобы проверять различные движения, выполняемые игроком. Классы для узлов, линий и правил игры расширяют View, поэтому в onDraw() я рисую квадраты с определенными координатами и добавляю их в представление в классе карты. В зависимости от того, что делает игрок, линии и узлы будут вызывать postInvalidate() для обновления чисел или цветов. Внутри класса правил игры он постоянно проверяет победителя или проигравшего и показывает, чей это ход, но у меня есть invalidate() внутри onDraw(), поэтому он постоянно перерисовывается. Нарисовано более 6 узлов и более 10 линий, а правила игры перекрывают все. Они также отображаются путем добавления видов в относительный макет.
Я знаю, что использование sleep() не идеально, но с тех пор, как был создан класс правил игры, и он использует invalidate внутри onDraw(), я испытывал это. Я нахожусь в дороге, но я могу опубликовать код позже. Я также застрял, используя холст для этого проекта, так как никто другой человек, работающий над этим проектом, никогда не касался Android.
Заранее спасибо!
TL; DR: как лучше оптимизировать использование canvas?