abd*_*lik 1 android android-camera2
我在看 Android 的 Camera2 API。在代码https://github.com/googlesamples/android-Camera2Basic/blob/master/Application/src/main/java/com/example/android/camera2basic/Camera2BasicFragment.java#L210,他们所使用的类SurfaceView,TextureView,Texture并且Surface没有过多解释。在区分这 4 个类时,文档也没有很大帮助。
因此,我的问题(S):什么是SurfaceView,TextureView,Texture和Texture?他们有什么区别?他们有什么区别?什么是用来做什么的?
每个非文档类的解释都会很棒。
提前致谢,
Surface 是一个可以将图像缓冲区绘制到其中的通用对象,许多 Android API 都接受它作为输出目标。
camera2 API 就是其中之一,但 EGL、MediaCodec 等也都可以使用它们。可以接受图像缓冲区的具体端点通常可以转换为一种Surface或另一种方式。其中包括一些 Android Views、MediaRecorder用于视频编码的媒体类、ImageReader用于高效 CPU 访问底层图形缓冲区的类等。
SurfaceView是表示硬件覆盖表面的 Android 视图;这是将图像缓冲区绘制到屏幕的最有效方法。因为它代表一个低级的显示基元,所以使用起来有点笨拙;您可以从其 SurfaceHolder 子对象的生命周期回调中为其获取 Surface。
TextureView是一个通过 GPU 绘制图像缓冲区的 Android 视图。它比 SurfaceView 更灵活,但需要 GPU 组合才能运行,因此会增加一些延迟和功耗。它可以提供一个 SurfaceTexture 来绘制。
SurfaceTexture是可以绘制的 GPU 纹理的表示。您可以在 EGL 中使用它通过其纹理 ID 进行渲染,并且您可以通过 Surface 构造函数之一从它创建一个 Surface 以提供给其他 API 进行绘制。TextureView 使用它,因为它是一个基于 GPU 的视图。
| 归档时间: |
|
| 查看次数: |
1457 次 |
| 最近记录: |