在SurfaceView中绘制多个画布

时间:2016-06-07 16:10:15

标签: android android-canvas surfaceview

我可以使用两个或更多画布在SurfaceView中绘制吗?

例如

Canvas canvas1 = holder.lockCanvas;
canvas1.drawPath(path1, paint1);
holder.unlockCanvasAndPost(canvas1);

Canvas canvas2 = holder.lockCanvas;
canvas2.drawPath(path2, paint2);
holder.unlockCanvasAndPost(canvas2);

此代码显示错误的图片。

1 个答案:

答案 0 :(得分:1)

Android Canvas只是一种发布绘图命令的方法。 SurfaceHolder将为您提供仅在lock()unlockCanvasAndPost()来电之间有效的画布。

每次锁定SurfaceHolder时,您都会获得不同的Canvas。 SurfaceView是双缓冲或三缓冲的,因此您也可以通过一系列缓冲区旋转。

确保您不会混淆" Canvas"的Android定义。在其他环境中使用它。