欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android View类与SurfaceView类详解

程序员文章站 2024-03-07 20:45:43
        android游戏开发中主要的类除了控制类就是显示类,比较重要也很复杂的就是显示和游戏...

        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开发的朋友,谢谢大家对本站的支持,后续继续补充相关资料。