У меня есть опыт работы с SurfaceView
. Чтобы предотвратить ненужное перерисовку, я всегда использую переменную обратного отсчета, которая сообщает потоку, как часто нужно отображать представление.SurfaceView типа PUSH_BUFFERS
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()
, как указано в документации.
Зависит. Если вы пытаетесь использовать CameraPreview, как в образцах SDK 7, требуется 'SURFACE_TYPE_PUSH_BUFFERS'. Если вы не установите этот тип, предварительный просмотр не будет работать. Таким образом, в API-интерфейсе камеры должна быть интерпретация, хотя типы отмечены как устаревшие. – rdoubleui
Интересно. Спасибо за информацию! – WarrenFaith