安卓开发中,涉及多媒体尤其是视频,经常会接触到一个概念Surface

那么如何理解他呢。最简单的理解就是其实就是一块内存区域仅此而已。

如果通过字面理解,好像是一个平面,但这个平面在哪里呢?
写代码经常有这个感觉,Surface传来传去,生成销毁,甚至MediaRecorder进行
内容录制的时候也能创建Surface ,Jni中也能看到surface的引用。但奇怪的是,经常在界面上却没有
任何看得见的区域,说这个区域就是一个Surface。有人就会晕了,我咋看不见什么Surface啊!!!

关键在这里,Surface并不是对应了一个界面,只是为了存放类似视频,图像数据而创造的一块内存区域。
只是这块内存区域可以有一个几何意义就是有个长度,有个宽度,长度乘以宽度就是这块内存的大小。所以有了
长宽意义的内存区域就可以代表一个平面,故管他叫做Surface。

所以今后开发时不必纠结 ,我TM为何看不见哪里有一个“平面”了。

如何轻松理解Android中的Surface概念相关推荐

  1. Android中的Android中的Surface和SurfaceView

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

  2. 【转】Android菜单详解——理解android中的Menu--不错

    原文网址:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541709.html 前言 今天看了pro android 3中menu这一章,对A ...

  3. Android菜单详解——理解android中的Menu

    前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...

  4. ROS学习手记 - 5 理解ROS中的基本概念_Services and Parameters

    ROS学习手记 - 5 理解ROS中的基本概念_Services and Parameters 上一节完成了对nodes, Topic的理解,再深入一步: Services and Parameter ...

  5. React最佳实践系列 —— 循序渐进理解 Dva中的model概念

    Dva最佳实践 -- 循序渐进理解 Dva中的model概念 一. 序 二. 在create-react-app中使用redux 1. 开始 2. 安装redux 三.异步action 四. Dva中 ...

  6. Android中的Surface, SurfaceHolder, SurfaceHolder.Callback, SurfaceView

    传入一个surface,然后让openGL在surface上画图 window->view hierachy(DecorView是tree的root)->ViewRoot->Surf ...

  7. 彻底理解 Android 中的阴影

    如果我们想创造更好的 Android App,我相信我们需要遵循 Material Design 的设计规范.一般而言,Material Design 是一个包含光线,材质和投影的三维环境.如果我们想 ...

  8. 彻底理解 Android 中的阴影 1

    如果我们想创造更好的 Android App,我相信我们需要遵循 Material Design 的设计规范.一般而言,Material Design 是一个包含光线,材质和投影的三维环境.如果我们想 ...

  9. android view 绘制过程,深入理解Android中View绘制的三大流程

    前言 最近对Android中View的绘制机制有了一些新的认识,所以想记录下来并分享给大家.View的工作流程主要是指measure.layout.draw这三大流程,即测量.布局和绘制,其中meas ...

最新文章

  1. 如何用burp抓取手机的流量_用企业微信SCRM如何搭建流量新体系
  2. Java数据结构简述
  3. arg是什么函数_java后端开发三年!你还不了解Spring 依赖注入,凭什么给你涨薪...
  4. linux集群搭建coolrainbow,Rainbow°110408_教程▍KBFS听歌学韩语—So Cool[Rainbow]
  5. redis本地及远程登录
  6. 怎样切换git账号密码错误_git中多账号切换问题的解决方案(转)
  7. linux基础篇-24,swap交换分区临时救急及划分方法
  8. 一叶知秋:基于“单目标域样本”的领域自适应方法
  9. 如何在Linux启动jar 包
  10. 医疗软件测试工作流程
  11. pygame安装教程(小白入手)
  12. 计算机无法打印图片,电脑中打印机可以打印文档却无法打印图片如何解决
  13. 简单好用的开源会议室预约系统
  14. 还没毕业,我就进了HR的黑名单!
  15. 【ECLIPSE 二】eclipse java web 版本修改问题 3.0-2.5
  16. [工具]Firefox(火狐浏览器)常用插件
  17. pjax使用心得总结
  18. 什么是JAVA人才外派服务?
  19. Adaptively Up-Sampling Point-Sampled Models
  20. L1-033 出生年 (15 分)(简单解法)

热门文章

  1. 在Win32下搭建opengl绘制环境
  2. Docker基本操作五 (挂载数据卷)
  3. 明明表没锁,却报SQL 错误: ORA-04021: 等待锁定对象 时发生超时
  4. Carla学习(一) 小车简单直线行走
  5. #使用TF实现海龟机器人跟随
  6. linux服务器在没有网的条件下,怎么安装使用numpy呢
  7. android studio使用雷电模拟器详细过程(或其他)
  8. 计算机组成原理实验报告 算术逻辑单元ALU实验(源代码全)
  9. FFmpeg系列(五)—— 音频重采样
  10. 光E电做好个人理财规划理财如此简单