Android游戏开发教程之七:自定义SurfaceView

       本文简单讨论以后Android游戏引擎模板的架构问题。在Android游戏开发教程之二:View类与SurfaceView类中我们已经谈到,SurfaceView类是有很多优势的,所以在Android游戏开发中还是选择SurfaceView。

       这里我们直接继承SurfaceView,实现SurfaceHolder.Callback接口,处理surfaceCreated、surfaceChanged以及surfaceDestroyed方法,这里我们并没有把按键控制传入,最终游戏的控制方面仍然由View内部类处理比较好,有关SurfaceView的具体我们可以参见Android开源项目的Camera中有关画面捕捉以及VideoView的控件实现大家可以清晰了解最终的用意。

Java代码
  1. public class cwjView extends SurfaceView implements SurfaceHolder.Callback {   
  2.     
  3.     
  4.  public cwjView(Context context, AttributeSet attrs) {   
  5.   super(context, attrs);   
  6.   SurfaceHolder holder=getHolder();   
  7.   holder.addCallback(this);     
  8.       
  9.   setFocusable(true);   
  10.  }   
  11.     
  12.  public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {   
  13.       
  14.      
  15.  }   
  16.   
  17.  public void surfaceCreated(SurfaceHolder holder) {   
  18.      
  19.      
  20.  }   
  21.   
  22.  public void surfaceDestroyed(SurfaceHolder holder) {   
  23.      
  24.   
  25.      
  26.  }   
  27.     
  28.  @Override  
  29.  public void onWindowFocusChanged(boolean hasWindowFocus) {   
  30.      
  31.  }   
  32.        
  33. }  

android开发学习网 » Android游戏开发教程之七:自定义SurfaceView