Android关于TextureView理解及基本使用
来源:互联网 发布:苹果电脑编写代码软件 编辑:程序博客网 时间:2024/05/19 13:24
TextureView文档大概的意思是:
TextureView可以用来显示内容流。这样一个内容流例如可以视频或者OpenGL的场景。内容流可以来自本应用程序以及其他进程。
Textureview必须在硬件加速开启的窗口中。
与SurfaceView相比,TextureView不会创建一个单独的窗口,这使得它可以像一般的View一样执行一些变换操作,比如移动、动画等等,例如,你可以通过调用myView.setAlpha(0.5f)将TextureView设置成半透明。
使用TextureView很简单:你需要使用的就是SurfaceTexture,SurfaceTexture可以用于呈现内容
TextureView的兄弟SurfaceView
应用程序的视频或者opengl内容往往是显示在一个特别的UI控件中:SurfaceView。SurfaceView的工作方式是创建一个置于应用窗口之后的新窗口。这种方式的效率非常高,因为SurfaceView窗口刷新的时候不需要重绘应用程序的窗口(android普通窗口的视图绘制机制是一层一层的,任何一个子元素或者是局部的刷新都会导致整个视图结构全部重绘一次,因此效率非常低下,不过满足普通应用界面的需求还是绰绰有余),但是SurfaceView也有一些非常不便的限制。
因为SurfaceView的内容不在应用窗口上,所以不能使用变换(平移、缩放、旋转等)。也难以放在ListView或者ScrollView中,不能使用UI控件的一些特性比如View.setAlpha()
。
为了解决这个问题 Android 4.0中引入了TextureView。
TextureView
与SurfaceView相比,TextureView并没有创建一个单独的Surface用来绘制,这使得它可以像一般的View一样执行一些变换操作,设置透明度等。另外,Textureview必须在硬件加速开启的窗口中。
TextureView的使用非常简单,你唯一要做的就是获取用于渲染内容的SurfaceTexture。具体做法是先创建TextureView对象,然后实现SurfaceTextureListener接口,
implements
了SurfaceTextureListener
接口因此activity中需要重写如下方法:TextureView可以使用setAlpha和setRotation方法达到改变透明度和旋转的效果
- @Override
- public void onSurfaceTextureAvailable(SurfaceTexture arg0, int arg1, int arg2) {
- }
- @Override
- public boolean onSurfaceTextureDestroyed(SurfaceTexture arg0) {
- }
- @Override
- public void onSurfaceTextureSizeChanged(SurfaceTexture arg0, int arg1,int arg2) {
- }
- @Override
- public void onSurfaceTextureUpdated(SurfaceTexture arg0) {
- }
附上效果图:
- myTexture.setAlpha(0.8f);
- myTexture.setRotation(90.0f);
源码地址:源码下载
- Android关于TextureView理解及基本使用
- Android使用TextureView播放视频
- TextureView 使用
- Android中Binder机制理解及AIDL使用基本步骤
- 关于Android中RSA数字签名的理解及使用
- 关于Android数据库—realm的使用及理解
- SurfaceView及TextureView
- SurfaceView及TextureView区别
- Android-->如何填MediaRecorder的坑(附TextureView的使用)
- Android使用SurfaceView和TextureView来播放视频
- Android Camera2 拍照(二)——使用TextureView
- Android --- 多媒体应用(使用VideoView、TextureView播放视频)
- Android之TextureView浅析
- android TextureView 浅析
- Android TextureView简易教程
- Android TextureView简易教程
- Android的TextureView
- Android TextureView OpenGL场景
- sockaddr_in sockaddr in_addr区别联系[转]
- Linux驱动开发的套路
- 机器学习常见算法
- 计算机网络笔记:TCP链接关闭过程分析
- 自定义view画圆,并且圆可以随意拖动
- Android关于TextureView理解及基本使用
- C++ 函数对象
- AUTOCAD的DWG图纸怎么转换成PDF文件
- Android studio使用JNI的的异常的处理(app:compileDebugNdk)
- unix网络编程 环境搭建 环境配置
- 这是 ApiDemo的文档
- 4.extern存储类练习。
- 安卓多线程模板
- Leetcode-4Sum