首页 > 解决方案 > Porterduff 模式 DST_IN 在路径周围绘制一个矩形

问题描述

我正在尝试绘制一条路径,然后使用 DST_IN Porterduff 模式用另一条路径掩盖它。

这是我绘制的代码块

int saveCount = canvas.saveLayer(
  0, 0, canvas.getWidth(), canvas.getHeight(), null);
canvas.drawPath(mPath, mFillPaint);  
mClipPaint = new Paint();
mClipPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
canvas.drawPath(mClipPath, mClipPaint);

这会进行遮罩,但在路径周围也有一个矩形,在该矩形之外,遮罩不起作用,如下所示。外星是原始路径,blob 是掩蔽路径。您可以看到该 blob 有一个矩形边框,超出该边框的遮罩不起作用 在此处输入图像描述

作为旁注,这似乎仅在启用硬件加速时才有效。这是预期的吗?

标签: androidcanvaspathmask

解决方案


推荐阅读