android中VideoView和TextureView以及Suraceview有什么区别?

Kis*_*ani 5 android surfaceview textureview android-videoview

android中VideoView和TextureView以及Suraceview有什么区别?

我什么时候使用每一个?

小智 3

很抱歉回答晚了,只是偶然发现了这一点,但 TL;DR 的答案是这样的:

VideoView-> VideoView 扩展了 SurfaceView,本质上就是 SurfaceView + MediaPlayer。为了您的方便,表面和媒体播放器等的拆卸由小部件负责。

SurfaceView-> 根据 Android 开发者的说法:

提供嵌入视图层次结构内部的专用绘图表面。您可以控制该表面的格式,如果您愿意,还可以控制其大小;SurfaceView 负责将表面放置在屏幕上的正确位置

表面是 Z 排序的,因此它位于持有 SurfaceView 的窗口后面;SurfaceView 在其窗口中打孔以允许显示其表面

这意味着它从视图层次结构中获取信息来创建连接到 GPU 的专用绘图区域。其缺点是没有动画和过渡等奇特的视图内容。但性能更高

TextureView-> 来自 Android 开发者:

与 SurfaceView 不同,TextureView 不会创建单独的窗口,而是表现为常规 View。这个关键的区别允许TextureView被移动、变换、动画等

现在你已经看到了,TextureView 的缺点意味着,由于它是视图层次结构的一部分,它会在视图传递过程中自行重绘,从而消耗更多资源,但你将拥有动画、过渡、alpha 等。