Posted on 2010-12-03 10:16
啥都寫點(diǎn) 閱讀(524)
評(píng)論(0) 編輯 收藏 所屬分類:
Android
在Android游戲 當(dāng)中充當(dāng)主要的除了控制類外就是顯示類,在J2ME中我們用Display和Canvas來實(shí)現(xiàn)這些,而Google Android中涉及到顯示的為view類,Android游戲開發(fā) 中比較重要和復(fù)雜的就是顯示和游戲邏輯的處理。這里我們說下 android .view.View 和android.view.SurfaceView。SurfaceView是從View基類中派生出來的顯示類,直接子類有GLSurfaceView和VideoView,可以看出GL和視頻 播放 以及Camera攝像頭一般均使用SurfaceView,到底有哪些優(yōu)勢(shì)呢? SurfaceView可以控制表面的格式,比如大小,顯示在屏幕 中的位置,最關(guān)鍵是的提供了SurfaceHolder類,使用getHolder方法獲取 ,相關(guān)的有Canvas lockCanvas()
Canvas lockCanvas(Rect dirty) 、void removeCallback(SurfaceHolder.Callback callback)、void unlockCanvasAndPost(Canvas canvas) 控制圖形以及繪制,而在SurfaceHolder.Callback 接口回調(diào)中可以通過下面三個(gè)抽象類可以自己定義 具體的實(shí)現(xiàn),比如第一個(gè)更改格式和顯示畫面。
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)
對(duì)于Surface相關(guān)的,Android底層還提供了GPU加速功能 ,所以一般實(shí)時(shí)性很強(qiáng)的應(yīng)用 中主要使用SurfaceView而不是直接從View 構(gòu)建,同時(shí)Android123未來后面說到的OpenGL中的GLSurfaceView也是從該類實(shí)現(xiàn)。
本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/JavaTiger427/archive/2010/11/25/6034536.aspx
--
學(xué)海無涯