1、什么时候使用:当自定义View需要频繁刷新,或者刷新数据比较大的时候,建议使用SurfaceView取代使用View
2、继承SurfaceView的并重写的步骤:①、继承SurfaceView类 ②、继承SufaceHolder.Callback接口和Runnable接口重写以下方法
③、获取SurfaceHolder并将callback接口加入其中
④、当surfaceCreated()被回调的时候,启动线程
public void surfaceCreated(SurfaceHolder holder){ new Thread(this).start(); }
⑤、在run()方法中设置一个while()循环,一直绘制View
public void run(){ while(isDrawing){ draw();//一直绘制 } }
⑥、获取SurfaceView提供的canvas(详见)
public void draw(){ try{ mCanvas = mHolder.lockCanvas(); }catch(Exception p){ }finally{ mCanvas.unlockCanvasAndPost(mCanvas); } }
时间: 2024-11-05 18:51:58