`
yanwenjinhaha
  • 浏览: 15346 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

SurfaceView类

 
阅读更多
SurfaceView类

SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface的绘制位置。
surface是纵深排序(Z-ordered)的,这表明它总在自己所在窗口的后面。surfaceview提供了一个可见区域,只有在这个可见区域内 的surface部分内容才可见,可见区域外的部分不可见。surface的排版显示受到视图层级关系的影响,它的兄弟视图结点会在顶端显示。这意味者 surface的内容会被它的兄弟视图遮挡,这一特性可以用来放置遮盖物(overlays)(例如,文本和按钮等控件)。注意,如果surface上面有透明控件,那么它的每次变化都会引起框架重新计算它和顶层控件的透明效果,这会影响性能。

你可以通过SurfaceHolder接口访问这个surface,getHolder()方法可以得到这个接口。surfaceview变得可见时,surface被创建;surfaceview隐藏前,surface被销毁。这样能节省资源。如果你要查看 surface被创建和销毁的时机,可以重载surfaceCreated(SurfaceHolder)和 surfaceDestroyed(SurfaceHolder)。
surfaceview的核心在于提供了两个线程:UI线程和渲染线程。这里应注意:
1> 所有SurfaceView和SurfaceHolder.Callback的方法都应该在UI线程里调用,一般来说就是应用程序主线程。渲染线程所要访问的各种变量应该作同步处理。
2> 由于surface可能被销毁,它只在SurfaceHolder.Callback.surfaceCreated()和 SurfaceHolder.Callback.surfaceDestroyed()之间有效,所以要确保渲染线程访问的是合法有效的surface。

实现SurfaceHolder接口的类里,可以通过重写surfaceChanged,surfaceCreated,surfaceDestroyed来控制SurfaceView。
surfaceChanged:SurfaceView被改变时,该回调函数被调用。
surfaceCreated:SurfaceView在第一次创建时,回调函数被调用。
surfaceDestroyed:SurfaceView被销毁是,回调函数被调用。

Sample请参考:http://yanwenjinhaha.iteye.com/admin/blogs/2043016
分享到:
评论

相关推荐

    封装好的Android视频传输surfaceView类

    自己编写的类CVideoWriter 与CVideoRead,用类似流的方式 实现视频数据传输。能力有限

    surfaceview动画示例

    Activity加载自定义的SurfaceView-> SurfaceView 构造器中启动线程A,循环改变SurfaceView的x,y坐标,当x,y坐标到某点时设渐显标志位picAlphaFlag为true -> Surface创建时即surfaceCreated中,启动线程B,循环根据...

    Android View类与SurfaceView类详解

    本文主要介绍Android View类与SurfaceView类,这里提供了详细的Android View类和SurfaceView类的使用方法,有兴趣的小伙伴可以参考下

    Android 自定义SurfaceView详解

    在Android游戏开发教程之二:View类与SurfaceView类中我们已经谈到,SurfaceView类是有很多优势的,所以在Android游戏开发中还是选择SurfaceView。  这里我们直接继承SurfaceView,实现SurfaceHolder.Callback接口...

    Android游戏开发20回合

    Android游戏开发八 SurfaceView类实例 Android游戏开发九 VideoView类剖析 Android游戏开发十 位图旋转 Android游戏开发11 View中手势识别 Android游戏开发12 Sensor重力感应 Android游戏开发13 Sensor感应示例 ...

    Android提高之SurfaceView的基本用法实例分析

    网上介绍SurfaceView的用法有很多,写法也层出不同,例如继承SurfaceView类,或者继承SurfaceHolder.Callback类等,这个可以根据功能实际需要自己选择,本文所述方法就直接在普通的用户界面调用SurfaceHolder的...

    21天学习android开发教程之SurfaceView

    网上介绍SurfaceView的用法有很多,写法也层出不同,例如继承SurfaceView类,或者继承SurfaceHolder.Callback类等,这个可以根据功能实际需要自己选择,我这里就直接在普通的用户界面调用SurfaceHolder的lockCanvas...

    SurfaceView

    SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface的绘制位置。

    Android 足球游戏:疯狂足球 源码含中文注释.rar

    Android 足球游戏:疯狂足球 源码含中文注释,...接收和捕获用户的键盘输入并做相应处理、SurfaceView类、定时刷新WelcomeView、欢迎动画播放,以及主菜单显示类等。了解这些类对于Android游戏整体的把控很有帮助哦。

    Android游戏开发之旅

    8.Android游戏开发之旅八 SurfaceView类实例 9.Android游戏开发之旅九 VideoView类剖析 10.Android游戏开发之旅十 位图旋转 11.Android游戏开发之旅11 View中手势识别 12Android游戏开发之旅12 Sensor重力感应 ...

    Android移动开发-使用MediaPlayer和SurfaceView播放视频的实现

    使用VideoView播放视频简单、方便,但有些早期的开发者还是更喜欢使用MediaPlayer来播放视频,但由于MediaPlayer主要用于播放音频,因此它没有提供图像输出界面,此时就需要借助于SurfaceView来显示MediaPlayer播放...

    android 实现拖动水纹效果

    对SurfaceView类的深入学习. 让界面更炫,UI交互创新的效果!

    android开发揭秘PDF

    5.1.2 SurfaceView类开发框架 5.2 Graphics类开发 5.5.1 Paint和Color类介绍 5.2.2 Canvas类介绍 5.2.3 几何图形绘制 5.2.4 字符串绘制 5.2.5 图像绘制 5.2.6 图像旋转 5.2.7 图像缩放 5.2.8 图像像素操作 5.2.9 ...

    《Android应用开发揭秘》源码

     5.1.2 SurfaceView类开发框架  5.2 Graphics类开发  5.5.1 Paint和Color类介绍  5.2.2 Canvas类介绍  5.2.3 几何图形绘制  5.2.4 字符串绘制  5.2.5 图像绘制  5.2.6 图像旋转  5.2.7 图像缩放  5.2.8 ...

    《Android应用开发揭秘》附带光盘代码.

     5.1.2 SurfaceView类开发框架  5.2 Graphics类开发  5.5.1 Paint和Color类介绍  5.2.2 Canvas类介绍  5.2.3 几何图形绘制  5.2.4 字符串绘制  5.2.5 图像绘制  5.2.6 图像旋转  5.2.7 图像缩放  5.2.8 ...

    Android相机拍照的功能类

    一个自定义的SurfaceView类,单类实现相机拍照功能,具体的讲解见:https://blog.csdn.net/guliang1991/article/details/81115242,需要注意的,该View大小最好与手机屏幕一致

    Android实现相机拍照的功能类

    一个自定义的SurfaceView类,单类实现相机拍照功能,具体的讲解见:https://blog.csdn.net/guliang1991/article/details/81115242,需要注意的,该View大小最好与手机屏幕一致

    android-4.2.2.网络电视直播.apk

    使用mediaplayer和surfaceview类播放网络视频

Global site tag (gtag.js) - Google Analytics