SurfaceView是View的一個特殊子類,它的目的是另外提供一個線程進行繪制操作。
步驟
1.用SurfaceView進行繪制,首先要建立一個類,繼承 SurfaceView,同時這個類應該實作SurfaceHolder.Callback接口。
這個接口中的三個回調函數(surfaceChanged(SurfaceHolder holder, int format, int width, int height),surfaceCreated(SurfaceHolder holder),surfaceDestroyed(SurfaceHolder holder))分别對應Surface何時更改、建立和銷毀。
2.對Surface對象的操作是通過SurfaceHolder來進行的。是以,在你的SurfaceView類初始化的時候,你需要調用 getHolder()來獲得SurfaceHolder對象,然後用addCallback()加上回調接口(因為你的類實作了相應的接口,是以此處傳入this即可)。
3.在你的SurfaceView類中應該建立一個線程類,處理繪制操作。為此,要向這個線程類傳遞上面獲得的SurfaceHolder對象。
4.繪制:線上程類的run()方法中進行繪制操作,通過lockCanvas()方法獲得Canvas對象,然後就可以用這個對象進行繪制,繪制完成後調用unlockCanvasAndPost(),傳入Canvas對象,這時Surface将會按Canvas進行繪制。
注意:每次利用SurfaceHolder獲得畫布時,前一次的内容将會保留。

