这个例子需求和流程:

Activity加载它们的定义SurfaceView-> SurfaceView 构造函数:初始化刷、传感器、SurfaceHolder和注册SurfaceHolder的监听(surfaceCreated和surfaceDestroyed)->创建surface即surfaceCreated时:注冊传感器监听,初始化Ball(包含球的图片、位置、活动区域),启动线程并循环运行(依据摇一摇的加速度推断球将来坐标是否越界,越界则改变速度方向即反弹,未越界则设定将来坐标,将球绘制到新的坐标上)




本例启发:


1.SurfaceView多用于需动态绘制view的情况。


2.SurfaceView往往须要循环运行一个线程,对view实时更新。


3.为何一定要用surfaceview?view行不行?不行,仅仅实用surfaceview才干进一步用surfaceholder及其管理surface生命周期的方式和绘制方式。