Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android画布为空_Android_Canvas_Locking - Fatal编程技术网

Android画布为空

Android画布为空,android,canvas,locking,Android,Canvas,Locking,这两个表达式能同时为真吗? holder.getSurface().isValid()==true; 和 canvas=holder.lockCanvas() canvas==null 参考文献: isValid()-此对象是否包含有效曲面?如果 保存物理曲面,因此lockCanvas()将成功 因此,如果lockCanvas()成功,它将返回一个非空画布 但您不应该直接访问Surface(需要同步),在surfaceChanged中,您可以调用canvas=holder.lockCanvas(

这两个表达式能同时为真吗? holder.getSurface().isValid()==true; 和 canvas=holder.lockCanvas() canvas==null

参考文献:

isValid()-此对象是否包含有效曲面?如果 保存物理曲面,因此lockCanvas()将成功

因此,如果lockCanvas()成功,它将返回一个非空画布


但您不应该直接访问Surface(需要同步),在
surfaceChanged
中,您可以调用
canvas=holder.lockCanvas()
并且仅在画布不为null时绘制。

我是否需要实现SurfaceHolder.Callback并检查surfaceCreated方法中的绘制可能性?SurfaceHolder是异步初始化的,因此,基本上如果你想在其上绘制,你应该有一个SurfaceHolder.Callback(知道它何时准备好),绘制图纸的最佳位置是
表面更改
(在
表面创建
之后调用)以及提供
宽度
高度
支架