Android中的VideoView和TextureView以及Suraceview之间的区别是什么?

时间:2016-01-28 05:29:40

标签: android surfaceview android-videoview textureview

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

我什么时候使用每一个?

1 个答案:

答案 0 :(得分:1)

对不起,我很晚才回答这个问题,但是TL; DR答案是这样的:

VideoView-> VideoView扩展了SurfaceView,本质上只是SurfaceView + MediaPlayer。为方便起见,小部件会处理表面和MediaPlayer的拆卸工作。

SurfaceView->根据Android开发者:

  

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

     

表面按Z顺序排列,以使其位于拥有SurfaceView的窗口后面; SurfaceView在其窗口上打一个孔以显示其表面

这意味着它需要从视图层次结构中获取信息来创建连接到GPU的专用绘图区域。这样做的缺点是没有精美的视图内容,例如动画和过渡效果。但是表现更好

TextureView->来自Android Developer:

  

与SurfaceView不同,TextureView不会创建单独的窗口,而是表现为常规的View。这种关键的区别允许对TextureView进行移动,转换,设置动画等

就这样,TextureView的缺点在于,由于它是视图层次结构的一部分,因此它将在视图传递期间自行重绘,从而花费更多资源,但是您将具有动画,过渡,alpha等。