我有一些经验 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() 如文档中所述。

有帮助吗?

解决方案

在使表面类型弃用后,这个问题已过时。所以它不再使用了...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top