在android中的surfaceview上创建cameraview(掩码)

Posted

技术标签:

【中文标题】在android中的surfaceview上创建cameraview(掩码)【英文标题】:Create cameraview (mask) on surfaceview in android 【发布时间】:2015-09-12 00:32:09 【问题描述】:

我想在相机表面视图上创建一个蒙版。见下图。面具可调整大小。图像只会被未模糊区域点击。任何人都可以给出如何创建 suh 面具的想法吗?提前致谢。

【问题讨论】:

【参考方案1】:

您不能在接收相机预览的 SurfaceView 的 Surface 上绘图。

您有两个基本选择:在 SurfaceView 的 View 部分上绘制,将其视为 custom view,或者创建第二个 SurfaceView 并将其叠加在相机表面之上。

对于后者,您可以使用setZOrderMediaOverlay() 将 Surface 定位在相机 Surface 层之上但在 View UI 层之下。您可以使用 Canvas 或 GLES 在其上绘图。您可以在Grafika's“multi-surface test”中找到具有三个 SurfaceView 的 Activity 示例。

【讨论】:

【参考方案2】:

您可以使用相机预览在表面视图上绘图。您需要设置

setWillNotDraw(false);

在surfaceCreated 覆盖中。

见:Extended SurfaceView's onDraw() method never called

因此,从那里开始,像往常一样在 onDraw 中进行所有绘图。

【讨论】:

以上是关于在android中的surfaceview上创建cameraview(掩码)的主要内容,如果未能解决你的问题,请参考以下文章

Android使用SurfaceView搭建OpenGL环境

Android使用SurfaceView搭建OpenGL环境

如何在 SurfaceView Android 上制作裁剪相机视图

Android应用中如何创建并使用Surface

Android应用中如何创建并使用Surface

Android中的Surface和SurfaceView