Android中SurfaceView,是不使用游戏引擎,开发一款游戏的常用view控件。
SurfaceView常常被用来显示那些更新速度比较快(这个速度通常人眼无法识别)的图像,常常被用来显示照相机的当前效果,视频的播放,游戏界面的播放。
SurfaceView的创建:
继承SurfaceView就可以使用构造方法创建了。
所要从新写的方法也只不过一个构造方法,这里使用的构造常常有两种,一种使用只有一个参数的构造方法,参数为context,如果使用这样的构造方法,则创建SurfaceView的Activity不能加载layout文件夹中的xml文件,只能加载new出来的view如
public class GameMainActivity extends Activity {
public static GameView Game;
public static AssetManager assets;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Assets.mContentResolver=getContentResolver();
Game=new GameView(GameMainActivity.this);
setContentView(Game);
assets=getAssets();
}
}
这里的GameView继承自SurfaceView
如果使用两个参数的构造方法:
Context context, AttributeSet attrs
则可以将自己View类当做Activity布局文件中的一个空间,当布局文件显示时会自动调用这个构造方法,第二参数用于返回相应的指令给View。
但是这里建议使用第一个方法构造,因为在游戏中的界面跳转与外部Activity的跳转逻辑完全不同,所以在布局文件中加载会有一定的弊端。但是好处是这样可以使用Android封装好的控件(如button)。
SurfaceView有一个特点:
他并不是当Activit