这里可以实现完美的橡皮擦功能!代码异常简单:
1 Xfermode xFermode = new PorterDuffXfermode(PorterDuff.Mode.CLEAR); 2 paint.setXfermode(xFermode);
这是使用的最后一个子类,关于16条Porter-Duff规则,如下:
1 private static final Xfermode[] sModes = { 2 new PorterDuffXfermode(PorterDuff.Mode.CLEAR), 3 new PorterDuffXfermode(PorterDuff.Mode.SRC), 4 new PorterDuffXfermode(PorterDuff.Mode.DST), 5 new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER), 6 new PorterDuffXfermode(PorterDuff.Mode.DST_OVER), 7 new PorterDuffXfermode(PorterDuff.Mode.SRC_IN), 8 new PorterDuffXfermode(PorterDuff.Mode.DST_IN), 9 new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT), 10 new PorterDuffXfermode(PorterDuff.Mode.DST_OUT), 11 new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP), 12 new PorterDuffXfermode(PorterDuff.Mode.DST_ATOP), 13 new PorterDuffXfermode(PorterDuff.Mode.XOR), 14 new PorterDuffXfermode(PorterDuff.Mode.DARKEN), 15 new PorterDuffXfermode(PorterDuff.Mode.LIGHTEN), 16 new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY), 17 new PorterDuffXfermode(PorterDuff.Mode.SCREEN) 18 };
它们每个显示的效果具体如下:
第一个就是Clear效果!
上面很多的图都是由SDK APIDemos运行所得~~有时间仔细研究一下Graphics中的每个Activity。