1、自定义View继承SurfaceView并实现SurfaceHolder.Callback接口;
2、声明一个SurfaceHolder对象用于控制SurfaceView;
3、在构造函数中获取holder并添加回调:
public DrawView(Context context) {
super(context);
holder = this.getHolder();
holder.addCallback(this);
}
4、使用Runnable定义一个绘图线程:
class drawThread implements Runnable {
public void run() {
while (true) {
Canvas canvas = holder.lockCanvas(); // 获取画布
startDraw(canvas);
holder.unlockCanvasAndPost(canvas); // 解锁画布,提交图像
}
}
}
5、在surfaceCreated方法中创建该绘图线程:
public void surfaceCreated(SurfaceHolder holder) {
new Thread(new drawThread()).start();
}