Surface SurfaceView
来源:互联网 发布:sql字段中包含字符串 编辑:程序博客网 时间:2024/05/18 03:07
一、Surface
Surface就是“表面”的意思。在SDK的文档中,对Surface的描述是这样的:“Handle onto a raw buffer that is being managed by the screen compositor”,翻译成中文就是“由屏幕显示内容合成器(screen compositor)所管理的原生缓冲器的句柄”,这句话包括下面两个意思:
1. 通过Surface(因为Surface是句柄)就可以获得原生缓冲器以及其中的内容。就像在C语言中,可以通过一个文件的句柄,就可以获得文件的内容一样;
2. 原生缓冲器(rawbuffer)是用于保存当前窗口的像素数据的。
引伸地,可以认为Android中的Surface就是一个用来画图形(graphics)或图像(image)的地方。根据Java方面的常规知识,我们知道通常画图是在一个Canvas对象上面进行的,由此,可以推知一个Surface对象中应该包含有一个Canvas对象,事实上的确如此,而且这一点可以很容易通过debug运行程序的方式得到证明(将光标停留在对象变量surface上,会弹出一个对话框,其中红色方框的内容,就表面surface中有一个CompatileCanvas成员变量)当然,看源代码也是可以证明这一点:
因此,在前面提及的两个意思的基础上,可以再加上一条:
3. Surface中有一个Canvas成员,专门用于画图的。
所以,Surface中的Canvas成员,是专门用于供程序员画图的场所,就像黑板一样;其中的原生缓冲器是用来保存数据的地方;Surface本身的作用类似一个句柄,得到了这个句柄就可以得到其中的Canvas、原生缓冲器以及其它方面的内容。
二、SurfaceView
SurfaceView,顾名思义就是Surface的View,通过SurfaceView就可以看到Surface的部分或者全部的内容,下面用一个图来形象地描述一下Surface和SurfaceView的关系:
也就是说,Surface是用通过SurfaceView才能展示其中的内容。从这个意思上来说,SurfaceView中的View之确切的含义应该是viewport即“视口”的意思,做过数据库设计的朋友知道,假定一个数据表有20个字段,但我们常常只用到其中的5个字段,那么就可以在原数据表的基础上,通过SQL语句CREATEVIEW来创建只包含那5个字段内容的view。
另一方面,SurfaceView是Android中View的子类。事实上,在Android中所有用于界面展示的类皆为View的子类,包括那些不可见的、各种各样的Layout。
所以说,SurfaceView中的View有两个含义:
1. 视口(viewport)的意思
2. SurfaceView是View的派生类
在Android中Surface是从Object派生而来,且实现了Parcelable接口。看到Parcelable就让人能很自然地想到数据容器,SurfaceView就是用来展示Surface中的数据的。在这个层面上而言,Surface就是管理数据的地方,SurfaceView就是展示数据的地方。
- Surface SurfaceView
- android surface surfaceView 浅析
- surface surfaceview callback 关系
- Surface, SurfaceView和SurfaceHolder
- SurfaceView及Surface分析
- Surface, SurfaceView, TextureView
- Surface、SurfaceView、SurfaceHolder详解
- SurfaceView、SurfaceHolder与Surface
- Surface、SurfaceView、SurfaceHolder详解
- android Surface和SurfaceView概述
- Android中的Surface和SurfaceView
- Android中的Surface和SurfaceView
- Surface——SurfaceView学习
- SurfaceView, Surface, SurfaceHold的关系
- Android中surface,surfaceview,sufaceholder以及surface客户端的关系
- surface surfaceview surfaceholder联系与区别
- Android中的Surface和SurfaceView之我见
- Surface、SurfaceView、View,讲的浅显易懂
- 一个女生写的,现实
- 我想以后记着你心里都是你,再去爱别人。
- VB.NET下的事件和委托
- 图解数据结构---“内部排序”综述
- 嵌入式书籍推荐
- Surface SurfaceView
- 二叉树的建立和遍历
- 11级_Java_曹建波 10.31 Session
- ffmpeg常用参数一览表
- [新人报到]终于决定加入CSDN。
- VC++面试题
- 最新伤感情侣日志发布:用微笑去掩饰自己内心的伤悲
- 李开复给中国学生第三封信:成功、自信、快乐
- 安装APK文件到Android模拟器