Android SurfaceView奇怪的行为

时间:2014-05-03 13:16:30

标签: android surfaceview

if(pauseGame){
    if(update){
        update = false;
        My_static_draw();
    }else{
        try {
           Thread.sleep(160);
        } catch (InterruptedException e) {
           e.printStackTrace();
        }
    }
}else{
   My_Game_draw(); //its load CPU
}

当我pauseGame = true;work(load CPU ~0%),但我在显示屏上看到一些奇怪的内容,更改了两个(或更多)图片,图片1在My_static_draw()中绘制,还有一些最后一张图片在My_Game_draw();

1 个答案:

答案 0 :(得分:1)

我猜你在调用答案中包含的代码之前正在调用Surface.lockCanvas()。如果这样做,则必须重绘整个脏区域(默认情况下,整个屏幕都是如此)。

您在之前的帧中循环,因为SurfaceView是双缓冲或三缓冲。如果您锁定并解锁而不绘制任何内容,则只需重新提交先前绘制的缓冲区。

如果您无需绘制任何内容,则可以通过不调用lockCanvas() / unlockCanvasAndPost()来解决此问题。