我有一些经验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()
文档中提到的情况下进行绘制。