ImageView上的形状叠加(“反向路径”)

时间:2012-07-26 21:55:00

标签: android

我遇到了问题:我想在图像上绘制灰色叠加层。有一条路径,我想在路径的外面上色。剪辑不好,因为边缘没有消除锯齿(我必须使它在2.1上工作)。

我让它在相机上工作(右侧)。有一个FrameLayout,它包含一个SurfaceView(摄像头预览)和一个View。视图在完整画布上填充叠加颜色,然后使用xfermode删除路径(Mode.CLEAR)。

使用相同的方法我得到右边的图片。 首先,我将View视为ImageView的后代,但这完全是坏事。然后,我添加了一个带有我视图下方图像的ImageView(如相机预览),但结果相同。然后使用framelayout中的其他imageview,但相同。当然,我总是试图将bgcolor设置为透明,绘制Color.TRANSPARENT,但它不起作用。我不知道是什么问题。也许Mode.CLEAR会清除该区域的整个屏幕?为什么它使用相机surfaceview而不是和imageview(甚至是另一个surfaceview)?

我一直在谷歌搜索7个小时,没有真正的解决方案。你能帮我解决一下我做得不好的事情,并分享一些“伎俩”吗?正如我之前所说的,我需要消除锯齿的边缘(几个形状有许多曲线和对角线),所以我无法剪辑(即使绘制笔画,它也很糟糕)。

提前谢谢。

图:http://s16.postimage.org/72bcp5kad/img_overlay.jpg

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我也构建了一个包含完整画布的路径,然后填充它EVEN_ODD。所以从最左边开始 - >左侧 - > topleft - > topright - > bottomright-> bottomleft-> leftside-> leftmost point->其他poly点。并且工作: - )