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开发的朋友,谢谢大家对本站的支持,后续继续补充相关资料。
如对本文有疑问, 点击进行留言回复!!
Android SDK Manager 不知为什么突然打不开了?看这里
监听Android系统发出的插入SD卡并且已正确安装(识别)时发出的广播
RecyclerView三种常用效果的实现方法-android-kotlin
Android Studio app启动错误 Error running :Default Activity not found
网友评论