Есть ли способ, которым я могу остановить метод draw, который вызывается автоматически.Stop Surface View from call draw Automtically
Что я делаю в данный момент:
public class GUI extends extends SurfaceView implements SurfaceHolder.Callback{
...
public void render() {
SurfaceHolder surfaceHolder = getHolder();
Canvas canvas = null;
try{
canvas = surfaceHolder.lockCanvas();
if (canvas != null) {
draw(canvas);
}
}finally {
if (canvas != null){
surfaceHolder.unlockCanvasAndPost(canvas);
}
}
}
@Override
public void draw(Canvas canvas){
... //things done with the canvas object
}
}
public class Game extends AbstractGame {
...
@Override
public void render(){
this.graphicsPanel.render();
}
Я хочу посмотреть только перерисовывать, когда я называю метод визуализации, я попытался установить willNotDraw (истинную) и ложную, но это не имеет никакого значения. Как я могу автоматически прекратить рисование поверхности, он, кажется, рисует в среднем 53-59 кадров в секунду, что отлично, но мне нужно, чтобы рендеринг выполнялся в конце, чтобы избежать столкновений с игровыми потоками/списками
Пожалуйста, [обзор этого вопроса] (http://stackoverflow.com/questions/3527621/how-to-pause-and-resume-a-surfaceview-thread), чтобы узнать, разрешает ли он вашу проблему .... Как для ответа «Vijayaramanan», НИКОГДА не смешивайте нити, которые должны иметь разные области. Вы получите ошибки/исключения. При необходимости используйте Handlers для получения основного Looper и отправьте сообщения на другой Thread и методы perfom. Наконец, если вам понадобится один SurfaceView для начала/остановки рендеринга в заданное время, [переопределить onDraw()] (https://developer.android.com/training/custom-views/custom-drawing.html) этого сингла 'Object'. – Bonatti