android.view.Surface概述

翻译至android.view.Surface

surface专门用来处理屏幕排版器(screen compositor)管理的一块原始内存(raw buffer),这块内存是用来直接绘制到屏幕的。

android.view.SurfaceView概述

翻译至android.view.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。

android Surface和SurfaceView概述相关推荐

  1. Android Surface系统的概述(一)

    一. 本系列文章将集中打通Surface系统的任督二脉 任脉:应用程序和Surface的关系 督脉:Surface和SurfaceFlinger之间的关系. 当这二脉打通后,我们就可以自行修炼更高层次 ...

  2. Android中的Android中的Surface和SurfaceView

    一.什么是Surface 简单的说Surface对应了一块屏幕缓冲区,每个window对应一个Surface,任何View都要画在Surface上.传统的view共享一块屏幕缓冲区,所有的绘制必须在U ...

  3. android surface编程,Android编程之SurfaceView实例详解

    本文实例讲述了Android编程之SurfaceView用法.分享给大家供大家参考,具体如下: 关于surfaceView相关知识: View和SurfaceView主要区别: 1. View只能在U ...

  4. android surface windows,Android易混概念辨析之Surface,Window,View,SurfaceView,Bitmap

    本文来自stackoverflow上的一个回答,很适合那些对这些概念感觉明白又说不明白它们之间的区别与联系的Android开发者. Surface 一个Surface就是一个对象,该对象持有一群像素( ...

  5. [Android] Surface、SurfaceHolder与SurfaceView

    其实相当于MVC结构的三者关系:M(Surface).V(SurfaceView).C(SurfaceHolder) 1.Surface Handle onto a raw buffer that i ...

  6. android surfaceholder的数据,Surface、SurfaceView、SurfaceHolder详解

    一.Surface Surface就是"表面"的意思.在SDK的文档中,对Surface的描述是这样的:"Handle onto a raw buffer that is ...

  7. Android之——Surface、SurfaceView与SurfaceHolder.Callback初探

    一.Surface    Surface在SDK的文档中的描述是这样的:Handle onto a raw buffer that is being managed by the screen com ...

  8. Android Surface system analyze

    CSDN新首页上线啦,邀请你来立即体验! 立即体验 博客     学院     下载     GitChat     更多 prike 深入理解 Android 卷I - 第8章 深入理解Surfac ...

  9. android.opengl.GLSurfaceView.Renderer概述

    android.opengl.GLSurfaceView.Renderer概述 翻译至android.opengl.GLSurfaceView.Renderer Class Overview,水平有限 ...

最新文章

  1. Oracle NULL 和空值
  2. 数据结构 - 二叉排序树
  3. 内核地址空间和用户地址空间
  4. 使用C++访问MySQL数据库(VS2019)
  5. vue的Prop属性
  6. SpringAOP的CGLIB动态代理的底层原理实现
  7. promiseKit 解析 iOS
  8. stm32CubeMx lwip + freeRTOS
  9. 摩斯电碼中英文对照表
  10. 开源BI工具superset的安装使用
  11. Excel 通过DDE与INTOUCH通信,数据格式
  12. 你能把我带走吗?python:走吧
  13. C# 复数类 Complex
  14. 计算机建立第2用户,2016年计算机二级VF备考练习题及参考答案(5)
  15. java禁止夏令时_在指定时区导入日期时间,忽略夏令时
  16. 【Python图形绘制】使用turtle库实现美国队长盾牌
  17. TS 36.211 V12.0.0-上行(1)-时隙结构和物理资源
  18. usnews美国大学计算机排名2021,2021年USNEWS美国大学计算机
  19. DVWA File upload 一句话木马
  20. html5 流星,HTML5流星和恒星

热门文章

  1. python中delta是什么意思_python – 根据dataframe中的值计算delta
  2. 新手快速入门自动化测试第一步
  3. yum安装ruby_CentOS 7下配置Ruby语言开发环境的方法教程
  4. zookeeper注册中心 kerberos_ZooKeeper 并不适合做注册中心
  5. php数组插入mysql,php mysql:将一个php数组插入mysql
  6. ubuntu 16.04 终端命令太长,换行输入方法
  7. 暗黑的字符串---递推公式
  8. 亲密关系沟通-【表达情绪】如何说出感受却不伤人
  9. 软件测试知识点 | Jmeter实现接口关联小结
  10. Linux 环境变量配置总结