用于画面刷新频繁的界面。可以在主线程之外的线程中向屏幕上绘图。
1、继承SurfaceView,实现Calback接口
public class GameView extends SurfaceView implements Callback
2、生成:surfaceHolder(现存管理器)对象,并将CallBack传递给surfaceHolder
SurfaceHolder surfaceHolder = getHolder();
surfaceHolder.addCallback(this);
3、重写CallBack的三个方法
//在surface的大小发生改变时激发
public void surfaceChanged(SurfaceHolder holder,int format,int width,int height){}
//在创建时激发,一般在这里调用画图的线程。
public void surfaceCreated(SurfaceHolder holder){}
//销毁时激发,一般在这里将画图的线程停止、释放。
public void surfaceDestroyed(SurfaceHolder holder) {}
4、实现画图线程:
Canvas canvas = holder.lockCanvas(null);//获取画布(画笔)
线程里的操作要有同步块{
canvas.画
}
holder.unlockCanvasAndPost(c));//解锁画布(画笔),提交画好的图像