我需要指定一个矩形,其中Android画布无法在其中绘制。我知道clipRect
将指定和绘制区域,但我是否可以扭转此效果。换句话说,我如何绘制一个对象,使其绘制到矩形的外部。图片澄清:
答案 0 :(得分:4)
在Android O上,Canvas
公开了API clipOutPath(Path path)
;要定位较早的版本,可以使用@Gabe Sechan暗示的clipPath(Path path, Region.Op op)
。
实现类似于:
@Override
protected void dispatchDraw(Canvas canvas) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
canvas.clipOutPath(path);
} else {
canvas.clipPath(path, Region.Op.DIFFERENCE);
}
super.dispatchDraw(canvas);
}
答案 1 :(得分:2)
我不确定这实际上是否比进行透支更具效果。但是您可以设置完整视图的剪切路径,然后将第二个剪切路径设置为设置了Region.Op DIFFERENCE的禁区。这会将剪切矩形设置为两者之间的差异。