Android PorterDuffXfermode,PorterDuff.Mode的使用以及Porter-Duff规则
2014-05-06 14:15
465 查看
AndroidPorterDuffXfermode,PorterDuff.Mode的使用以及Porter-Duff规则
(2012-01-1615:24:47)转载▼
下面的Xfermode子类可以改变这种行为:
AvoidXfermode指定了一个颜色和容差,强制Paint避免在它上面绘图(或者只在它上面绘图)。PixelXorXfermode当覆盖已有的颜色时,应用一个简单的像素XOR操作。
PorterDuffXfermode这是一个非常强大的转换模式,使用它,可以使用图像合成的16条Porter-Duff规则的任意一条来控制Paint如何与已有的Canvas图像进行交互。
要应用转换模式,可以使用setXferMode方法,如下所示:
AvoidXfermodeavoid=newAvoidXfermode(Color.BLUE,10,AvoidXfermode.Mode.AVOID);borderPen.setXfermode(avoid);
PorterDuffXfermode定义的模式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | private static final Xfermode[]sModes={ new PorterDuffXfermode(PorterDuff.Mode.CLEAR), new PorterDuffXfermode(PorterDuff.Mode.SRC), new PorterDuffXfermode(PorterDuff.Mode.DST), new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER), new PorterDuffXfermode(PorterDuff.Mode.DST_OVER), new PorterDuffXfermode(PorterDuff.Mode.SRC_IN), new PorterDuffXfermode(PorterDuff.Mode.DST_IN), new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT), new PorterDuffXfermode(PorterDuff.Mode.DST_OUT), new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP), new PorterDuffXfermode(PorterDuff.Mode.DST_ATOP), new PorterDuffXfermode(PorterDuff.Mode.XOR), new PorterDuffXfermode(PorterDuff.Mode.DARKEN), new PorterDuffXfermode(PorterDuff.Mode.LIGHTEN), new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY), new PorterDuffXfermode(PorterDuff.Mode.SCREEN) }; |
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
滤色效果
相关文章推荐
- 关于android的id
- Java模拟Android View OnClickListener点击事件
- android中清空所有activity栈
- Android开发之设定Dialog的位置
- android--游戏开发--让人物动起来
- 解决Unable to resolve target 'android-x'的问题
- android4.0.3 修改启动动画和开机声音
- 如何在Android中获知屏幕打开或者关闭
- Android 开发之异常处理篇(一):SDK Manager 闪退的解决方法
- Afaria Android客户端使用afariaseed.xml文件进行注册
- Android布局1
- android textView特效
- Android中的系统广播集合
- android原生json包--对象转json
- android 权限大全
- Android P2P语音通话实现
- 【android】各镜像文件img介绍
- IntelliJ IDEA下配置AndroidAnnotations
- android常用颜色
- Android中WindowManager学习笔记