SurfaceView,SurfaceHolder,SurfaceHolder.CallBack知识
来源:互联网 发布:怀孕b超单数据怎么看 编辑:程序博客网 时间:2024/04/29 10:40
转载:http://www.cnblogs.com/bausch/archive/2011/10/20/2219068.html
最近接触到了SurfaceView,SurfaceHolder,SurfaceHolder.CallBack,一直不求其解,现在来粗浅认识一下它们。
先看一下官方的定义:
1.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。
2.SurfaceHolder
显示一个surface的抽象接口,使你可以控制surface的大小和格式, 以及在surface上编辑像素,和监视surace的改变。这个接口通常通过SurfaceView类实现。
3. SurfaceHolder.Callback
用户可以实现此接口接收surface变化的消息。当用在一个SurfaceView 中时, 它只在SurfaceHolder.Callback.surfaceCreated()和SurfaceHolder.Callback.surfaceDestroyed()之间有效。设置Callback的方法是SurfaceHolder.addCallback.
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack知识
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack用法!
- SurfaceView、SurfaceHolder及SurfaceHolder.Callback
- 剖析SurfaceView ,Callback,SurfaceHolder
- 理解Surface,SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
- android之SurfaceView,SurfaceHolder,SurfaceHolder.CallBack.
- Surface、SurfaceView、SurfaceHolder、SurfaceHolder.Callback之间关系
- Android的Surface、SurfaceView、SurfaceHolder、SurfaceHolder.Callback
- android中的SurfaceView,SurfaceHolder,SurfaceHolder.CallBack
- 剖析 SurfaceView Callback以及SurfaceHolder
- 剖析 SurfaceView ! Callback以及SurfaceHolder!!
- android SurfaceView,SurfaceHolder,Callback详解
- android中SurfaceView SurfaceHolder SurfaceHolder.Callback 关系 理解
- android学习笔记之SurfaceView,SurfaceHolder,SurfaceHolder.CallBack.
- 工厂模式备忘
- crontab格式写错出现报错
- 五种数据库模型
- 读书笔记:Django 模板开发(四) 后续总结
- UVa 147 - Dollars
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack知识
- 只需6步骤,教你用ghost硬盘对拷实现系统安装
- ubuntu 中crontab使用
- 转:[MySQL] 存储引擎对比
- Android MediaPlayer与Http Proxy结合之基础篇
- 【高手分享】熟知Win7快捷键 提升工作效率
- CallContext和多线程
- service XXX start启动报start: Rejected send message, 1 matche
- win7下快速帮你搜索出大尺码文件的方法