SurfaceTexture学习笔记
来源:互联网 发布:零式战斗机知乎 编辑:程序博客网 时间:2024/06/05 10:41
几个注意事项:
1、TextureView是Android 4.0之后加入的,低版本么这个类。TextureView必须工作在开启硬件加速的环境中,也即配置文件里Activity的设置项里:android:hardwareAccelerated="true" 默认的这个属性就是true,因此不用再写了。但如果写成false,可以看到onSurfaceTextureAvailable()这个回调就进不来了;
2、有两点跟Surfaceview不同。第一,TextureView创建过程中没有进到onSurfaceTextureSizeChanged()这个函数里。而SurfaceView在创建过程中,从无到有的时候会进到大小发生变化回调里。第二,onSurfaceTextureUpdated()这个函数每上来一帧数据,这块就进来一次。这是跟Surfaceview相比,最伟大的一个地方。通过这个接口,可以将上来的SurfaceTexture送给OpenGL再去处理。这个回调是实时的,而非用Camera的PreviewCallback这种2次回调的方式。从时间看,基本上每32ms左右上来一帧数据,即每秒30帧,跟本手机的Camera的性能吻合。
3、Camera再执行startPreview时必须保证TextureView的SurfaceTexture上来了,如果因为一些性能原因onSurfaceTextureAvailable()这个回调上不来就开预览,就开不了的。如果发生这种情况,就在onSurfaceTextureAvailable()回调里执行open和startPreview操作,保证万无一失。
4、SurfaceTexture和TextureView的关系:
如果说TextureView是一幅画的话,那SurfaceTexture就是画布,真正渲染的载体是SurfaceTexture。
5、TextureView可以像一般View执行各种变化,其中有个textureView.setAlpha(1.0f);默认不写这句话,它的alpha也是1.0f,即不透明。如果设成透明0.0f,可以看到啥都看不到了,这一点跟Surfaceview刚好相反。Surfaceview的SurfaceHolder一般要设一下Transparent即透明。但TextureView因为是个view,任何一个png的照片透明度设成0肯定啥都看不到。
6、如果认为预览个Camera这就是TextureView和SurfaceTexture的使命的话,就大错特错了,真正用意是和OpenGL无缝连接。
- SurfaceTexture学习笔记
- SurfaceTexture
- SurfaceTexture
- SurfaceTexture
- SurfaceTexture
- surface surfaceTexture
- Android SurfaceTexture
- SurfaceTexture中的野指针
- flash's SurfaceTexture
- Android4.0 SurfaceTexture
- Android4.0 SurfaceTexture
- Android中的SurfaceTexture
- 谈谈Android中的SurfaceTexture
- 谈谈Android中的SurfaceTexture
- Android4.0 SurfaceTexture
- SurfaceTexture,SurfaceControl,SurfaceHolder
- 谈谈Android中的SurfaceTexture
- 谈谈Android中的SurfaceTexture
- 5个典型实例告诉你:什么是数据可视化
- Hibernate学习之配置文件hibernate.cfg.xml
- Python uniform() 函数
- 上白泽慧音(浅谈Tarjan——(2))
- String,StringBuffer常用方法
- SurfaceTexture学习笔记
- golang有用的库及工具 之 缓存淘汰算法--LRU算法
- scala正则表达式获取url的host
- Swift开发:Swift 修改UISegmentedControl字体大小,颜色
- 英创主板JAVA应用开发简介
- 如何快速全面建立自己的大数据知识体系?
- C/C++头文件解析
- 数据结构预习线性表
- Qos之丢包重传NACK