camerax cameraView和PreviewView有什么不同?因为我找不到有关比较2个视图以预览相机的资源或文章,因此无法使用x
PreviewView
是可用于显示相机预览的自定义视图。您可以将其添加到XML布局中,然后在Activity
/ Fragment
中将其与Preview
用例挂钩,以开始预览流。因此,在使用PreviewView
时,您负责设置摄像机,创建Preview
用例(以及您可能想使用的其他用例),并将它们绑定到生命周期。您可以在PreviewView
中详细了解this article及其工作方式。
CameraView
是一个自定义视图,它执行许多操作,它的目的是允许用户通过在XML布局中添加视图来快速设置“相机应用”。它允许显示相机预览,拍照,录制视频,在取景器上放大/缩小,并提供不同的API来配置相机(镜头朝向,闪光灯,比例类型,拍摄模式等)。它负责设置摄像机,绑定和取消绑定用例,以及不进行绑定。要注意的重要一点是,为了显示预览,它在内部使用PreviewView
。我并没有在CameraView
上在线看到很多文章,不过我还是推荐this one。
如果您在设置摄像机和构建/配置用例时需要灵活性,或者如果需要使用ImageAnalysis
用例,则CameraView
可能不是正确的选择。 PreviewView
的创建是为了减轻设置和处理相机使用的预览表面以及处理显示预览的困难部分(缩放,旋转,宽高比等)的负担。