Xfermode

这里可以实现完美的橡皮擦功能!代码异常简单:

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。

猜你喜欢

转载自270827204.iteye.com/blog/2253703
今日推荐