我有一个Canvas对象,在某个时候我设置了一个剪辑区域,这样我就可以在“窗口/部分”中绘制,而不必担心溢出到画布的其他部分。
在我完成绘制“窗口”后,我想要删除该剪辑区域,但似乎无法做到。
没有删除剪辑区域的函数,当我尝试在整个画布上应用新的剪辑区域时,该剪辑区域没有被应用-在应用新的剪辑区域后立即调用canvas.getClipBounds()会返回一个带有先前剪辑区域的矩形。
在我完成绘制“窗口”后,我想要删除该剪辑区域,但似乎无法做到。
没有删除剪辑区域的函数,当我尝试在整个画布上应用新的剪辑区域时,该剪辑区域没有被应用-在应用新的剪辑区域后立即调用canvas.getClipBounds()会返回一个带有先前剪辑区域的矩形。
setClip
orclipRect
? - eduyayoclipRect(Rect rect, Region.Op op)
函数,并将操作符op
设置为 Union,这样它就会添加裁剪区域。如果不指定添加操作,它会不断地裁剪更多的区域。这有点像布尔运算中的交集。你可以使用canvas.save()
在裁剪之前保存画布状态,然后进行裁剪、绘制操作,最后使用canvas.restore()
恢复完整的裁剪边界。同时,你也可以将 Union 操作应用于整个画布。 - eduyayo