SurfaceView, GLSurfaceView 和 TextureView的探索

本文详细介绍了Android中SurfaceView, GLSurfaceView和TextureView的发展历程、特性以及应用场景。SurfaceView适用于实时视频分析,GLSurfaceView用于3D渲染,而TextureView则支持灵活的UI变换和高效渲染,常用于相机预览和动画。" 84435778,7382915,Java Web项目实践:适合新手的源码解析,"['java项目源码', 'java练手项目', '电商网站', '管理系统', '博客系统']
摘要由CSDN通过智能技术生成

Android系统下视频流如何渲染和展示。系统提供了几种不同的View用于视频流的展示,它们分别是 SurfaceView, GLSurfaceView 和 TextureView。

一、发展历程

  • SurfaceView出现最早,从Android 1.0版本开始就已经存在了,最初是为了解决在android中从非UI线程中绘制和更新UI的问题而设计的。它使用双缓冲技术,能够将渲染结果缓存起来,减少屏幕的闪烁和卡顿。同时由于它基于Surface类,所以支持直接访问原生的画布缓冲区,具有高效性能的优势。后来发现用起来不方便, SurfaceView渲染线程要单独写开发难度大, 一大堆都可以独立成模板。
  • 后来从Android 1.5 Cupcake(API级别3)开始就出现了 GLSurfaceView,它是使用了模板的 SurfaceView,是对SurfaceView的扩展。它专门用于OpenGL ES的渲染,通过抽象出OpenGL ES的主线程和UI线程,使得处理复杂的图形逻辑变得更加简单。它支持OpenGL ES的大部分功能,同时也提供了丰富的回调函数和设计模式,便于应用自定义。
  • 再后来发现GLSurfaceView不能根据屏幕的变化而变化, 这是由于GLSurfaceView同应用的Surface不是在同一层导致的问题。人们就想到把这个GLSurfaceView弄到应用的Surface中, 所以就从Android 4.0 Ice Cream Sandwich(API级别14)开始引入TextureView。它可以在GPU中进行图形渲染,支持硬件加速,并且因为不包含Surface,所以可以和其它普通View一样进行移动,旋转,缩放,动画等变化,能够通过类似ImageVi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值