安卓反向剪辑

Tam*_*Hog 1 java android clip android-canvas

我需要指定一个矩形,Android 画布不能在其中绘制。我知道这clipRect将指定要绘制的区域,但我是否可以扭转这种效果。换句话说,我如何绘制一个对象,使其绘制到矩形的外部。图片说明:

剪辑示例

Tom*_*ard 10

使用 Android O,Canvas公开 API clipOutPath(Path path);对于针对早期版本,您可以使用clipPath(Path path, Region.Op op)@Gabe Sechan 所暗示的那样。

实现看起来像:

@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);
}
Run Code Online (Sandbox Code Playgroud)