Android学习使用PorterDuff.Mode
2017-07-28 18:29
239 查看
当用到canvas画图且有2层及以上的图层时,往往会用到PorterDuff.Mode,怎么使用的呢?
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
先来看下PorterDuffXfermode这个类,PorterDuff查词典是没这个名字的,看了大神的文章才知道原来这个是Tomas Proter和
Tom Duff名字组合,在SDK中Xfermode有三个子类:AvoidXfermode, PixelXorXfermode和PorterDuffXfermode,前两个类在API 16被遗弃了。
PorterDuff.Mode这个枚举总共有18种,如图:
下图大概比较简易的描述了这些mode的作用,
从上面我们可以看到PorterDuff.Mode为枚举类,一共有18个枚举值:
1.PorterDuff.Mode.CLEAR
所绘制不会提交到画布上。
2.PorterDuff.Mode.SRC
显示上层绘制图片
3.PorterDuff.Mode.DST
显示下层绘制图片
4.PorterDuff.Mode.SRC_OVER
正常绘制显示,上下层绘制叠盖。
5.PorterDuff.Mode.DST_OVER
上下层都显示。下层居上显示。
6.PorterDuff.Mode.SRC_IN
取两层绘制交集。显示上层。
7.PorterDuff.Mode.DST_IN
取两层绘制交集。显示下层。
8.PorterDuff.Mode.SRC_OUT
取上层绘制非交集部分。
9.PorterDuff.Mode.DST_OUT
取下层绘制非交集部分。
10.PorterDuff.Mode.SRC_ATOP
取下层非交集部分与上层交集部分
11.PorterDuff.Mode.DST_ATOP
取上层非交集部分与下层交集部分
12.PorterDuff.Mode.XOR
异或:去除两图层交集部分
13.PorterDuff.Mode.DARKEN
取两图层全部区域,交集部分颜色加深
14.PorterDuff.Mode.LIGHTEN
取两图层全部,点亮交集部分颜色
15.PorterDuff.Mode.MULTIPLY
取两图层交集部分叠加后颜色
16.PorterDuff.Mode.SCREEN
取两图层全部区域,交集部分变为透明色
17.PorterDuff.Mode.ADD
取两图层全部区域,饱和度叠加
18.PorterDuff.Mode.OVERLAY
今天又进步了
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
先来看下PorterDuffXfermode这个类,PorterDuff查词典是没这个名字的,看了大神的文章才知道原来这个是Tomas Proter和
Tom Duff名字组合,在SDK中Xfermode有三个子类:AvoidXfermode, PixelXorXfermode和PorterDuffXfermode,前两个类在API 16被遗弃了。
PorterDuff.Mode这个枚举总共有18种,如图:
下图大概比较简易的描述了这些mode的作用,
从上面我们可以看到PorterDuff.Mode为枚举类,一共有18个枚举值:
1.PorterDuff.Mode.CLEAR
所绘制不会提交到画布上。
2.PorterDuff.Mode.SRC
显示上层绘制图片
3.PorterDuff.Mode.DST
显示下层绘制图片
4.PorterDuff.Mode.SRC_OVER
正常绘制显示,上下层绘制叠盖。
5.PorterDuff.Mode.DST_OVER
上下层都显示。下层居上显示。
6.PorterDuff.Mode.SRC_IN
取两层绘制交集。显示上层。
7.PorterDuff.Mode.DST_IN
取两层绘制交集。显示下层。
8.PorterDuff.Mode.SRC_OUT
取上层绘制非交集部分。
9.PorterDuff.Mode.DST_OUT
取下层绘制非交集部分。
10.PorterDuff.Mode.SRC_ATOP
取下层非交集部分与上层交集部分
11.PorterDuff.Mode.DST_ATOP
取上层非交集部分与下层交集部分
12.PorterDuff.Mode.XOR
异或:去除两图层交集部分
13.PorterDuff.Mode.DARKEN
取两图层全部区域,交集部分颜色加深
14.PorterDuff.Mode.LIGHTEN
取两图层全部,点亮交集部分颜色
15.PorterDuff.Mode.MULTIPLY
取两图层交集部分叠加后颜色
16.PorterDuff.Mode.SCREEN
取两图层全部区域,交集部分变为透明色
17.PorterDuff.Mode.ADD
取两图层全部区域,饱和度叠加
18.PorterDuff.Mode.OVERLAY
今天又进步了
相关文章推荐
- Android PorterDuffXfermode使用中的一些坑
- android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
- Android 自定义View之PorterDuffXfermode的使用(刮刮卡的效果实现)
- android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
- android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
- Android中Canvas绘图之PorterDuffXfermode使用及工作原理详解
- Android 中 Canvas 绘图之 PorterDuffXfermode 使用及工作原理详解
- android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
- Android中Canvas绘图之PorterDuffXfermode使用及工作原理详解
- android PorterDuffXfermode、PorterDuff.Mode 使用
- Android中Canvas绘图之PorterDuffXfermode使用
- android PorterDuffXfermode ,PorterDuff.Mode 使用 以及Porter-Duff规则详解
- Android中Canvas绘图之PorterDuffXfermode使用及工作原理详解
- Android中Canvas绘图之PorterDuffXfermode使用及工作原理详解
- Android使用PorterDuffXfermode实现遮罩效果
- Android PorterDuff.Mode与Canvas实际使用
- 【Android】PorterDuffXfermode使用(通过消除背景层与重叠部分绘制组合图形)
- Android中Canvas绘图之PorterDuffXfermode使用及工作原理详解
- android PorterDuffXfermode PorterDuff.Mode 使用 以及Porter-Duff规则详解
- Android中Canvas绘图之PorterDuffXfermode使用及工作原理详解