需要在圆形视图中显示相机预览

Need to display a camera preview inside a circular view

我需要实现圆形相机预览。我将 camera2 api 与 TextureView 一起使用。我添加的布局如下:

 <FrameLayout>
 <TextureView/>
 <CircularImageView/>
 <FrameLayout/>

这样做我得到以下结果: 如您所见,相机预览显示在一个正方形中,但我希望它是一个圆形的,同时将黄色图像保留在背景中。我怎样才能做到这一点?我确实参考了几个关于以前问过的类似问题的例子,但它们是使用旧相机 api 而不是 TextureView 完成的。

感谢任何帮助。

您需要一个常规图像视图,而不是 CircularImageView,您可以在其中加载带有所需大小的圆形透明孔的 png。

因此,提议的层次结构可能是这样的:

<FrameLayout size="match_parent">
   <TextureView size=<calculated_to_match_camera> centered />
   <ImageView size="match_parent" src="full-screen-gradient-with-transparent-circle-in-center.png" />
<FrameLayout />

上面的 shorthand 假设 size --> android:width android:身高。纹理大小以编程方式设置以适合相机预览纵横比,并通过其上方 ImageView 层中的圆孔暴露感兴趣区域。