对于新手学习SurfaceView的时候获取lockCanvas的时候总是返回null的问题很是纠结
canvas = surfaceHolder.lockCanvas(new Rect(0, 0, 300,getWindowManager().getDefaultDisplay().getHeight()));
原因是surfaceView里面调用draw()的时候,获取的控件的width和height都是0,然后把它放到OnClickListener里面用,结果没有问题了,所以在获取到width和height不为0的地方调用就可以了。