做项目时候经常出现要求画一个东西,但是画出来的东西我们只需要显示一部分,因此我们会有遮罩的要求,我这里就有一个最简单实现canvas遮罩的方法:
Path path = new Path();
//最后一个参数是旋转顺逆方向,cw或ccw
path.addCircle(圆心X,圆心Y,半径R, Path.Direction.CW );
if(Build.VERSION.SDK_INT >= 28){
canvas.clipPath(path);
}else {
canvas.clipPath(path, Region.Op.REPLACE);
}
这里简单来说就是在画布canvas 上裁剪一个洞 ,我们只显示这个洞上的东西。
这里的path根据自己的需求可以更改,自定义的path也是可以的,可以实现不规则图形的裁剪。