当需要开发复杂的游戏,而且对游戏执行效率很高时,view就不能满足了,这时必须使用SurfaceView类进行开发。SurfaceView可以直接访问画布(Canvas)。使用SurfaceView开发时需注意使用它绘图时一般都是在最顶层使用时还需要对其进行创建、销毁、情况改变时进行监视,这就要实现SurfaceHolder.Callback接口,如果要对被绘制的画布进行裁剪,控制其大小时都是需要使用SurfaceHolder来完成处理。在程序中SurfaceHolder对象需要通过getHolder方法获得,同时还需addCallback方法来添加回调函数
SurfaceView和View最明显的不同之处在于,SurfaceView不需要通过线程来更新视图,但在绘制前必须使用lockCanvas方法锁定画布,并得到画布,然后在绘制,绘制完成后使用unlockCanvasAndPost方法解锁画布
surfaceCreated:surface创建时激发
surfaceChanged:surface改变时激发
surfaceDestroyed:surface销毁时激发
addCallback:给surfaceView添加一个回调函数
SurfaceView和View最明显的不同之处在于,SurfaceView不需要通过线程来更新视图,但在绘制前必须使用lockCanvas方法锁定画布,并得到画布,然后在绘制,绘制完成后使用unlockCanvasAndPost方法解锁画布
surfaceCreated:surface创建时激发
surfaceChanged:surface改变时激发
surfaceDestroyed:surface销毁时激发
addCallback:给surfaceView添加一个回调函数