Android 开发中的游戏开发使用 View 还是 SurfaceView
2013-01-22 16:04
971 查看
如何在Android平台上开发游戏,又如何使Android开发效率更高?我们是选择Android开发平台中的View还是SurfaceView呢?
在Android中开发游戏,一般来说,或想写一个复杂一点的游戏,是必须用到SurfaceView来开发的。
经过这一阵子对android的研究,我找到了在android中游戏开发的误区,不要老想着用Layout和view去实现,不要将某个游戏
中的对象做成一个组件来处理。应该尽量想着在Canvas(画布)中画出游戏戏中的背景、人物、动画等...
SurfaceView提供直接访问一个可画图的界面,可以控制在界面顶部的子视图层。SurfaceView是提供给需要直接画像素而不是使用
窗体部件的应用使用的。Android图形系统中一个重要的概念和线索是surface。View及其子类(如TextView, Button)
要画在surface上。每个surface创建一个Canvas对象(但属性时常改变),用来管理view在surface上的绘图操作,如画点画线。
还要注意的是,使用它的时候,一般都是出现在最顶层的:The view hierarchy will take care of correctly compositing
with the Surface any siblings of the SurfaceView that would normally appear on top of it.
使用的SurfaceView的时候,一般情况下还要对其进行创建,销毁,改变时的情况进行监视,这就要用到SurfaceHolder.Callback.
class BBatt extends SurfaceView implements SurfaceHolder.Callback {
public void surfaceChanged(SurfaceHolder holder,int format,int width,int height){}
//看其名知其义,在surface的大小发生改变时激发
public void surfaceCreated(SurfaceHolder holder){}
//同上,在创建时激发,一般在这里调用画图的线程。
public void surfaceDestroyed(SurfaceHolder holder) {}
//同上,销毁时激发,一般在这里将画图的线程停止、释放。
}
在Android中开发游戏,一般来说,或想写一个复杂一点的游戏,是必须用到SurfaceView来开发的。
经过这一阵子对android的研究,我找到了在android中游戏开发的误区,不要老想着用Layout和view去实现,不要将某个游戏
中的对象做成一个组件来处理。应该尽量想着在Canvas(画布)中画出游戏戏中的背景、人物、动画等...
SurfaceView提供直接访问一个可画图的界面,可以控制在界面顶部的子视图层。SurfaceView是提供给需要直接画像素而不是使用
窗体部件的应用使用的。Android图形系统中一个重要的概念和线索是surface。View及其子类(如TextView, Button)
要画在surface上。每个surface创建一个Canvas对象(但属性时常改变),用来管理view在surface上的绘图操作,如画点画线。
还要注意的是,使用它的时候,一般都是出现在最顶层的:The view hierarchy will take care of correctly compositing
with the Surface any siblings of the SurfaceView that would normally appear on top of it.
使用的SurfaceView的时候,一般情况下还要对其进行创建,销毁,改变时的情况进行监视,这就要用到SurfaceHolder.Callback.
class BBatt extends SurfaceView implements SurfaceHolder.Callback {
public void surfaceChanged(SurfaceHolder holder,int format,int width,int height){}
//看其名知其义,在surface的大小发生改变时激发
public void surfaceCreated(SurfaceHolder holder){}
//同上,在创建时激发,一般在这里调用画图的线程。
public void surfaceDestroyed(SurfaceHolder holder) {}
//同上,销毁时激发,一般在这里将画图的线程停止、释放。
}
相关文章推荐
- Android开发中的游戏开发使用View还是SurfaceView?
- (转)【Android游戏开发之二】剖析游戏开发用view还是surfaceView ?!
- 【Android游戏开发之二】剖析游戏开发用view还是surfaceView ?!
- Android游戏开发之SurfaceView的使用-android学习之旅(五)
- Android游戏开发使用View还是SurfaceView
- 【Android游戏开发之二】剖析游戏开发用view还是surfaceView ?!
- 【Android游戏开发之二】剖析游戏开发用view还是surfaceView ?!
- Android游戏开发14:SurfaceView中使用Tween Animation渐变动画
- 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!
- 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!
- 【Android游戏开发之二】剖析游戏开发用view还是surfaceView ?!
- android开发中使用surfaceView开发游戏
- 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!
- 【Android游戏开发之二】剖析游戏开发用view还是surfaceView ?!
- 【Android游戏开发之二】剖析游戏开发用view还是surfaceView ?!
- 【Android游戏开发之二】剖析游戏开发用view还是surfaceView ?!
- 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!
- android 游戏开发 - 使用SurfaceView 创建你自己的View
- 【Android2D游戏开发十四】(未完待续)手把手教你在SurfaceView中照样使用Android 动画—Tween Animation!
- 【Android游戏开发之二】剖析游戏开发用view还是surfaceView