我想在相机表面视图上创建一个遮罩。如下图所示,遮罩可调整大小。只有未模糊的区域才能被点击。有人能给出如何创建这样的遮罩的建议吗?先感谢了。
你无法在正在接收摄像头预览的SurfaceView上进行绘制。
你有两个基本选项:在SurfaceView的View部分上进行绘制,将其视为自定义视图,或者创建第二个SurfaceView并将其层叠在相机表面之上。
对于后者,您可以使用 setZOrderMediaOverlay()
来定位 Surface 位于相机表面层之上,但低于 View UI 层。您可以使用 Canvas 或 GLES 进行绘制。您可以在 Grafika 的 "multi-surface test" 中找到一个带有三个 SurfaceViews 的活动示例。
setWillNotDraw(false);
在surfaceCreated重写方法中。
请参考: 扩展SurfaceView的onDraw()方法从未被调用
所以从那里开始,所有的绘图都要像平常一样在onDraw方法中完成。