1.下面的Xfermode子类可以改变这种行为:
AvoidXfermode 指定了一个颜色和容差,强制Paint避免在它上面绘图(或者只在它上面绘图)。
PixelXorXfermode 当覆盖已有的颜色时,应用一个简单的像素XOR操作。
PorterDuffXfermode 这是一个非常强大的转换模式,使用它,可以使用图像合成的16条Porter-Duff规则的任意一条来控制Paint如何与已有的Canvas图像进行交互。
要应用转换模式,可以使用setXferMode方法,如下所示:
AvoidXfermode avoid = new AvoidXfermode(Color.BLUE, 10, AvoidXfermode.Mode. AVOID); borderPen.setXfermode(avoid);
2.Porter-Duff 效果图:
3.16条Porter-Duff规则
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
- 推荐文章
- 实例一登录
- js
- JavaScript DOM实战:创建和克隆元素
- SQL Developer报错:Unable to find a Java Virtual Machine解决办法
- Oracle管理口令遗忘解决办法
- Windows 10系统更换Windows 7系统磁盘分区注意事项二
- Windows 10系统更换Windows 7系统磁盘分区注意事项一
- iOS:iOS中的多控制器管理
- iOS:使用代理模式监听开关状态改变事件
- iOS:didSelectRowAtIndexPath:方法失效解决办法
- iOS:控制器间的数据传递
- Objective-C:模拟按钮点击事件理解代理模式
- Objective-C内存管理
- lucene
- nginx编译安装
- java字符串、时间大小比较
- String, JSONArray , JSONObject ,Map<String, Object> 与对象
- mysql
- double类型转化成string
- 把xml格式的字符串写入到一个xml文件中
- 把本地的jar包安装到maven库中
- mybatis 查询
- freemarker
- python——线程相关
- 【python-sql】sql操作时遇到的坑
- 专项测试——移动app安装包检测
- 【Android端 adb相关】adb相关总结
- for 语句
- Python2.x与3.x版本区别
- Python 运算符