android中的SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
来源:互联网 发布:信用卡怎么绑定淘宝 编辑:程序博客网 时间:2024/05/16 08:19
最近打代码时经常碰到到了SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
现在来简单认识一下它们。
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显示一个surface的抽象接口,使你可以控制surface的大小和格式, 以及在surface上编辑像素,和监视surace的改变。这个接口通常通过SurfaceView类实现。
SurfaceHolder.Callback用户可以实现此接口接收surface变化的消息。当用在一个SurfaceView 中时, 它只在SurfaceHolder.Callback.surfaceCreated()和SurfaceHolder.Callback.surfaceDestroyed()之间有效。设置Callback的方法是SurfaceHolder.addCallback.
- android中的SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
- Android 开发游戏中的SurfaceView,Callback,SurfaceHolder
- android之SurfaceView,SurfaceHolder,SurfaceHolder.CallBack.
- Android的Surface、SurfaceView、SurfaceHolder、SurfaceHolder.Callback
- android SurfaceView,SurfaceHolder,Callback详解
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack用法!
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack知识
- SurfaceView、SurfaceHolder及SurfaceHolder.Callback
- android中的surfaceSurface、SurfaceHolder及SurfaceHolder.Callback
- android中的surfaceSurface、SurfaceHolder及SurfaceHolder.Callback
- android中SurfaceView SurfaceHolder SurfaceHolder.Callback 关系 理解
- android学习笔记之SurfaceView,SurfaceHolder,SurfaceHolder.CallBack.
- android大扫盲之SurfaceView,SurfaceHolder,SurfaceHolder.CallBack.
- Android Surface、SurfaceView、SurfaceHolder和SurfaceHolder.Callback之间的联系
- Ubuntu系统清理
- java基础的总结(1)
- 如何从List集合中删除对象
- 编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程
- linux系统常用命令和解析
- android中的SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
- HTML中下拉框的简单介绍<Select><option>
- 欢迎使用CSDN-markdown编辑器
- Laravel入门基础教程(一)
- EM3002D、Seapath200、MRU-H安装测量及校准
- C语言中的指针理解
- TCP协议的三次握手建立连接及四次握手断开连接
- C语言运算符的优先级和关键字
- UVA 11464 偶数矩阵