首页 > 代码库 > 自定义控件(2.3):SurfaceView和SurfaceHolder

自定义控件(2.3):SurfaceView和SurfaceHolder

本例需求及流程:
Activity加载自定义的SurfaceView-> SurfaceView 构造器中:初始化画笔、传感器、SurfaceHolder并注册SurfaceHolder的监听(surfaceCreated和surfaceDestroyed)->创建surface即surfaceCreated时:注册传感器监听,初始化Ball(包括球的图片、位置、活动区域),启动线程并循环执行(根据摇一摇的加速度判断球将来坐标是否越界,越界则改变速度方向即反弹,未越界则设定将来坐标,将球绘制到新的坐标上)

本例启示:
1.SurfaceView多用于需动态绘制view的情况;
2.SurfaceView往往需要循环执行一个线程,对view实时更新;
3.为何一定要用surfaceview?view行不行?不行,只有用surfaceview才能进一步用surfaceholder及其管理surface生命周期的方式和绘制方式;


示例Demo示例Demo(摇一摇小球碰撞)

 

自定义控件(2.3):SurfaceView和SurfaceHolder