Android API 25 (Android 7.1.1)
TextureView
public class TextureView
extends View
Added in API level 14
java.lang.Object
↳android.view.TextureView
【概述】
TextureView可用于显示内容流。 这样的内容流例如可以是视频或OpenGL场景。 内容流可以来自App进程或是远端进程。
TextureView只能在硬件加速窗口中使用。 当在软件中渲染时,TextureView将不会绘制任何东西。
与SurfaceView不同,TextureView不会创建单独的窗口,这使得它可以像一般的View一样执行一些变换操作,比如移动,转换,动画等。例如,你可以通过调用myView.setAlpha(0.5f)使一个TextureView半透明。
使用TextureView很简单:所有你需要做的是获取它的SurfaceTexture。SurfaceTexture可以用于渲染内容。
应用程序的视频或者opengl内容往往是显示在一个特别的UI控件中:SurfaceView。SurfaceView的工作方式是创建一个置于应用窗口之后的新窗口。这种 方式的效率非常高,因为SurfaceView窗口刷新的时候不需要重绘应用程序的窗口(android普通窗口的视图绘制机制是一层一层的,任何一个子元素或者 是局部的刷新都会导致整个视图结构全部重绘一次,因此效率非常低下,不过满足普通应用界面的需求还是绰绰有余),但是SurfaceView也有一些非常 不便的限制。
因为SurfaceView的内容不在应用窗口上,所以不能使用变换(平移、缩放、旋转等)。也难以放在ListView或者ScrollView中,不能使用UI控件的一些特性比如View.setAlpha()。
以下示例演示如何将相机预览渲染到TextureView中:
public class LiveCameraActivity extends Activity implements TextureView.SurfaceTextureListener {
private Camera mCamera;
private TextureView mTextureView;
protected void onCreate(Bundle savedInstanceState) {