0

我有一个问题:我想在图像上绘制一个灰色叠加层。有一条路径,我想在路径之外着色。剪辑不好,因为边缘没有抗锯齿(我必须让它在 2.1 上工作)。

我已经让它在相机上工作(右侧)。有一个 FrameLayout,上面有一个 SurfaceView(相机预览)和一个 View。视图在整个画布上填充覆盖颜色,然后使用 xfermode 删除路径 (Mode.CLEAR)。

使用相同的方法,我得到了右边的图片。首先,我使我的 View 成为 ImageView 的后代,但这非常糟糕。然后,我在视图下方添加了一个带有图像的 ImageView(如相机预览),但结果相同。然后使用框架布局之外的其他图像视图,但相同。当然,我一直尝试将bgcolor设置为透明,绘制Color.TRANSPARENT,但没有成功。我不知道是什么问题。也许 Mode.CLEAR 会清除该区域的整个屏幕?为什么它使用相机表面视图而不是和图像视图(甚至另一个表面视图)?

我已经搜索了 7 个小时,但没有真正的解决方案。你能帮我做坏事,分享一些“技巧”吗?正如我之前所说,我需要抗锯齿边缘(几个形状有很多曲线和对角线),所以我不能剪辑(即使画笔画也不能,这很糟糕)。

先感谢您。

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

4

1 回答 1

0

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

于 2012-07-30T22:33:49.027 回答