在Android游戲 當中充當主要的除了控制類外就是顯示類,在J2ME中我們用Display和Canvas來實現這些,而Google Android中涉及到顯示的為view類,Android游戲開發 中比較重要和復雜的就是顯示和游戲邏輯的處理。這里我們說下 android .view.View 和android.view.SurfaceView。SurfaceView是從View基類中派生出來的顯示類,直接子類有GLSurfaceView和VideoView,可以看出GL和視頻 播放 以及Camera攝像頭一般均使用SurfaceView,到底有哪些優勢呢? SurfaceView可以控制表面的格式,比如大小,顯示在屏幕 中的位置,最關鍵是的提供了SurfaceHolder類,使用getHolder方法獲取 ,相關的有Canvas lockCanvas()
Canvas lockCanvas(Rect dirty) 、void removeCallback(SurfaceHolder.Callback callback)、void unlockCanvasAndPost(Canvas canvas) 控制圖形以及繪制,而在SurfaceHolder.Callback 接口回調中可以通過下面三個抽象類可以自己定義 具體的實現,比如第一個更改格式和顯示畫面。
view plaincopy to clipboardprint?
abstract void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
abstract void surfaceCreated(SurfaceHolder holder)
abstract void surfaceDestroyed(SurfaceHolder holder)
abstract void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
abstract void surfaceCreated(SurfaceHolder holder)
abstract void surfaceDestroyed(SurfaceHolder holder)
對于Surface相關的,Android底層還提供了GPU加速功能 ,所以一般實時性很強的應用 中主要使用SurfaceView而不是直接從View 構建,同時Android123未來后面說到的OpenGL中的GLSurfaceView也是從該類實現。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/JavaTiger427/archive/2010/11/25/6034536.aspx
-- 學海無涯