У меня есть некоторый опыт работы с SurfaceView
. Чтобы предотвратить ненужное перерисовывание, я всегда использую переменную обратного отсчета, которая сообщает потоку, как часто следует рисовать представление.
countdown > 0 : draw ? doNothing
Однако я думал об изменении этого, чтобы использовать "поверхность толчка". Так что просто выдвиньте буфер на поверхность и покажите, что вместо установки переменной отсчета везде в моем проекте.
Моя проблема в том, что я не могу найти хороший учебник / ресурс, где описано использование. В настоящее время у меня есть что-то вроде этого:
// panel is the SurfaceView
c = panel.getHolder().lockCanvas(null);
synchronized (panel.getHolder()) {
panel.updatePhysics();
panel.onDraw(c);
}
panel.getHolder().unlockCanvasAndPost(c);
Я понятия не имею, как заставить холст рисовать, когда я не могу использовать lockCanvas()
, как указано в документации.