如何使用 Textureview 作为 cameraX 的预览 [Java]

问题描述

我遵循了 cameraX 上的指南,这些指南都使用 PreviewView 来显示相机输出 preview.setSurfaceProvider(PreviewView.createSurfaceProvider());

如何设置预览以使用纹理视图而不是预览视图

解决方法

您可以指定在 SurfaceView 和 TextureView 之间的 PreviewView 中使用哪个视图。 在设置surfaceProvider之前,先设置实现方式

previewView.implementationMode = PreviewView.ImplementationMode.COMPATIBLE

这里的 previewView 是 PreviewView 的 XML id。 PreviewView.ImplementationMode.COMPATIBLE 用于 TextureView。设置后,PreviewView 将使用 TextureView 来显示 Camera。

SurfaceView 的实现方式是PreviewView.ImplementationMode.COMPATIBLE

这与

兼容
androidx.camera:camera-view:1.0.0-alpha22

对于这个版本,你需要改变

preview.setSurfaceProvider(PreviewView.createSurfaceProvider());

到 preview.setSurfaceProvider(previewView.getSurfaceProvider)