在Android中的SurfaceView上创建相机预览(遮罩)。

5
我想在相机表面视图上创建一个遮罩。如下图所示,遮罩可调整大小。只有未模糊的区域才能被点击。有人能给出如何创建这样的遮罩的建议吗?先感谢了。
2个回答

0

你无法在正在接收摄像头预览的SurfaceView上进行绘制。

你有两个基本选项:在SurfaceView的View部分上进行绘制,将其视为自定义视图,或者创建第二个SurfaceView并将其层叠在相机表面之上。

对于后者,您可以使用 setZOrderMediaOverlay() 来定位 Surface 位于相机表面层之上,但低于 View UI 层。您可以使用 Canvas 或 GLES 进行绘制。您可以在 Grafika 的 "multi-surface test" 中找到一个带有三个 SurfaceViews 的活动示例。


0
你可以在带有相机预览的SurfaceView上绘制。你需要设置
setWillNotDraw(false);

在surfaceCreated重写方法中。

请参考: 扩展SurfaceView的onDraw()方法从未被调用

所以从那里开始,所有的绘图都要像平常一样在onDraw方法中完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接