我可以使用两个或更多画布在SurfaceView中绘制吗?
例如
Canvas canvas1 = holder.lockCanvas;
canvas1.drawPath(path1, paint1);
holder.unlockCanvasAndPost(canvas1);
Canvas canvas2 = holder.lockCanvas;
canvas2.drawPath(path2, paint2);
holder.unlockCanvasAndPost(canvas2);
此代码显示错误的图片。
答案 0 :(得分:1)
Android Canvas只是一种发布绘图命令的方法。 SurfaceHolder将为您提供仅在lock()
和unlockCanvasAndPost()
来电之间有效的画布。
每次锁定SurfaceHolder时,您都会获得不同的Canvas。 SurfaceView是双缓冲或三缓冲的,因此您也可以通过一系列缓冲区旋转。
确保您不会混淆" Canvas"的Android定义。在其他环境中使用它。