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); } }
本文详细介绍了在自定义View需要频繁刷新或数据量较大时,如何使用SurfaceView替代普通View进行优化。具体步骤包括继承SurfaceView类,重写SurfaceHolder.Callback接口,启动绘图线程,并在循环中持续调用draw()方法进行视图更新。
1975

被折叠的 条评论
为什么被折叠?



