Android 操作Canvas时,可以对一些区域进行多次的操作(包括与、或、非、异或等),示例代码如下
canvas.save(); canvas.translate(10, 310); canvas.clipRect(0, 0, 60, 60); canvas.clipRect(40, 40, 100, 100, Region.Op.XOR); 第二次的Rect与第一次Rect的异或。 drawScene(canvas); canvas.restore();
最后一个参数有多个选择,分别是:
1 普通无clip
2 DIFFERENCE 基于第一次的区域,把不同于第二次的部分显示出来
3 REPLACE 显示第二次的
4 UNION 全部显示
5 XOR 补集(全集减去交集)部分显示6 REVERSE_DIFFERENCE 基于第二次的区域,把不同于第一次的部分显示出来
7 INTERSECT 交集显示
源码参考ApiDemo(19)