【问题标题】:What's the difference between VideoView and TextureView and Suraceview in android?android中的VideoView和TextureView和Suraceview有什么区别?
【发布时间】:2016-05-05 08:34:23
【问题描述】:
android中VideoView和TextureView、Suraceview有什么区别?
我什么时候使用它们?
【问题讨论】:
标签:
android
surfaceview
android-videoview
textureview
【解决方案1】:
对不起,迟到的答案,只是偶然发现了这个,但 TL;DR 的答案是这样的:
VideoView -> VideoView 扩展了 SurfaceView,本质上就是 SurfaceView + MediaPlayer。为了您的方便,表面和 MediaPlayer 等的拆卸由小部件负责。
SurfaceView-> 根据 Android 开发者的说法:
提供嵌入视图层次结构中的专用绘图表面。您可以控制此表面的格式,如果您愿意,还可以控制它的大小; SurfaceView 负责将表面放置在屏幕上的正确位置
表面是 Z 顺序的,因此它位于持有其 SurfaceView 的窗口后面; SurfaceView 在其窗口中打了一个洞以显示其表面
这意味着它从视图层次结构中获取信息来创建连接到 GPU 的专用绘图区域。其缺点是没有花哨的视图内容,例如动画和过渡。但性能更高
TextureView -> 来自 Android 开发者:
与 SurfaceView 不同,TextureView 不会创建单独的窗口,而是像常规视图一样运行。这个关键区别允许对 TextureView 进行移动、转换、动画等操作
你知道了,TextureView 的缺点意味着,由于它是你的视图层次结构的一部分,它会在视图传递期间自行重绘它,从而消耗更多资源,但是你将有动画、过渡、alpha 等。