Android View类与SurfaceView类详解
android游戏开发中主要的类除了控制类就是显示类,比较重要也很复杂的就是显示和游戏逻辑的处理。在j2me中可以通过display和canvas来实现显示,而android中处理显示的是view类。下面为大家简单介绍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 接口回调中可以通过下面三个抽象类可以自己定义具体的实现(比如第一个更改格式和显示画面):
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构建,同时后面会讲到的opengl中的glsurfaceview也是从该类实现。
以上就对android view类和surface类的详细介绍,希望能帮助android开发的朋友,谢谢大家对本站的支持,后续继续补充相关资料。