使用canvas和surfaceview在Android上使用Java进行双缓冲

Kal*_*ina 7 java android canvas doublebuffered

怎么去做这个?有人可以给我一个大纲吗?

从我在网上找到的,似乎在我的run()函数中:

  1. 创建一个位图
  2. 创建一个画布并将其附加到位图
  3. lockCanvas()
  4. 调用draw(canvas)并将位图绘制到后台缓冲区(如何??)
  5. unlockCanvasAndPost()

它是否正确?如果是这样,我可以得到一些解释; 这些步骤意味着什么,我该如何实现它们?我从来没有为Android编程,所以我是一个真正的菜鸟.如果不正确,我该怎么做?

Rom*_*Guy 17

它已经是双缓冲的,这就是unlockCanvasAndPost()调用的功能.无需创建位图.

  • @TheBeatlemaniac:当你在调用`lockCanvas()`之后绘制一个`Canvas`时,你实际上是在*next*帧上绘制东西,而正在显示*current*帧.`unlockCanvasAndPost()`调用将使用当前帧缓冲区切换下一个帧缓冲区,以显示更新的`Canvas`. (7认同)