Android SurfaceView奇怪的行为
当我做Android SurfaceView奇怪的行为,android,surfaceview,Android,Surfaceview,当我做pauseGame=true时这是工作(加载CPU~0%),但我看到显示屏上有奇怪的东西在改变两个(或更多)图像,在My_static_draw()中绘制的图像1,以及My_Game_draw()中的一些最后图像我猜在调用答案中包含的代码之前,您正在调用Surface.lockCanvas()。如果这样做,您必须重新绘制整个脏区域(默认情况下,这是整个屏幕) 因为SurfaceView是双缓冲或三缓冲的,所以您正在循环浏览以前的帧。如果在不绘制任何内容的情况下锁定和解锁,则只需提交先前绘制
pauseGame=true时
这是工作(加载CPU~0%)
,但我看到显示屏上有奇怪的东西在改变两个(或更多)图像,在My_static_draw()
中绘制的图像1,以及My_Game_draw()中的一些最后图像代码>我猜在调用答案中包含的代码之前,您正在调用Surface.lockCanvas()
。如果这样做,您必须重新绘制整个脏区域(默认情况下,这是整个屏幕)
因为SurfaceView是双缓冲或三缓冲的,所以您正在循环浏览以前的帧。如果在不绘制任何内容的情况下锁定和解锁,则只需提交先前绘制的缓冲区
如果没有要绘制的内容,您可以通过根本不调用lockCanvas()
/unlockCanvasAndPost()
来解决此问题。如果这回答了您的问题,请单击答案左侧的复选标记将其标记为“已接受”。
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
}