2.OpenglES——Surface、SurfaceView、SurfaceHolder

参考:Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
书写本文的初衷是为了自我学习

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)是用于保存当前窗体的像素数据的
    

https://www.cnblogs.com/lcchuguo/p/3992482.html

SurfaceView

通俗的理解,相当于通过SurfaceView我们就能够看到Surface的部分或所有内容
SurfaceView关系
所以说,SurfaceView中的View有两个含义:

  1.  视口(viewport)的意思
    
  2.  SurfaceView是View的派生类
    

SurfaceHolder

SurfaceHolder是一个接口,其作用就像一个关于Surface的监听器。提供访问和控制SurfaceView背后的Surface 相关的方法,它通过三个回调方法,让我们能够感知到Surface的创建、销毁或者改变。

SurfaceHolder.Callback

前面已经讲到SurfaceHolder是一个接口,它通过回到方法的方式,让我们能够感知到Surface的创建、销毁或者改变。事实上这一点是通过其内部的静态子接口SurfaceHolder.Callback来实现的。SurfaceHolder.Callback中定义了三个接口方法:

1.     abstract void surfaceChanged(SurfaceHolderholder, int format, int width, int height)
当surface发生不论什么结构性的变化时(格式或者大小),该方法就会被马上调用。

2.      abstract void surfaceCreated(SurfaceHolderholder)
当surface对象创建后,该方法就会被马上调用。

3.      abstract void surfaceDestroyed(SurfaceHolderholder)
当surface对象在将要销毁前,该方法会被马上调用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值