Android中的surfaceHolder.lockCanvas(null)返回为null详解

对于新手学习SurfaceView的时候获取lockCanvas的时候总是返回null的问题很是纠结

canvas = surfaceHolder.lockCanvas(new Rect(0, 0, 300,getWindowManager().getDefaultDisplay().getHeight()));

原因是surfaceView里面调用draw()的时候,获取的控件的width和height都是0,然后把它放到OnClickListener里面用,结果没有问题了,所以在获取到width和height不为0的地方调用就可以了。

原文地址:https://www.cnblogs.com/roccheung/p/5797448.html