android xfermode绘图
2015-06-30 18:51
393 查看
1、fermode:是来自 transfer-modes,在画笔中设置xfermode后,画笔在使用的时候就会应用设置的像素转换模式。就类似于
ps中的选取功能,留下的选取是从原选区中去除还是合并,取交还是除去,就这么回事。
2、fermode相关类之间的继承关系:
3、直接继承子类有AvoidXfermode(避免绘图或者只在上边绘制)、PixelXorfermode(与目标做xor操作)和PorterDuffXfermode(一下几种模式)
(1)使用xfermode,首先绘制的为dest,后绘制的为src。结果就是目标图形以某种mode显示在src上。
(2)不要忘记设置关闭硬件加速,以在api 16以下起作用。setLayerType(LAYER_TYPE_SOFTWARE, paint);
4、小案例:
(1)一个空心圆效果。
首先绘制一个大圆,设置画笔的与画板的计算方式为清除,然后绘制一个小圆,清除绘制mode,就出现一个空心圆效果。
(2)将图片处理为原形
ps中的选取功能,留下的选取是从原选区中去除还是合并,取交还是除去,就这么回事。
2、fermode相关类之间的继承关系:
3、直接继承子类有AvoidXfermode(避免绘图或者只在上边绘制)、PixelXorfermode(与目标做xor操作)和PorterDuffXfermode(一下几种模式)
(1)使用xfermode,首先绘制的为dest,后绘制的为src。结果就是目标图形以某种mode显示在src上。
(2)不要忘记设置关闭硬件加速,以在api 16以下起作用。setLayerType(LAYER_TYPE_SOFTWARE, paint);
4、小案例:
(1)一个空心圆效果。
//目标 canvas.drawCircle(90, 90, 90, paint); //设置运算方式 paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.CLEAR)); //源 canvas.drawCircle(90, 90, 30, paint); //清除fermode paint.setXfermode(null);
首先绘制一个大圆,设置画笔的与画板的计算方式为清除,然后绘制一个小圆,清除绘制mode,就出现一个空心圆效果。
(2)将图片处理为原形
//目标 canvas.drawCircle(90, 90, 90, paint); //设置运算方式 paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.SRC_IN)); //源 canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher), 0, 0, paint); //清除fermode paint.setXfermode(null);
相关文章推荐
- Android SDK开发包国内下载地址
- Android Audio System
- Android JNI(实现自己的JNI_OnLoad函数)
- Android环境搭建 NDK+ADT(免cywgin)
- Android开发学习笔记之窗口操作
- android中 include标签的使用,以及xUtils处理 include的方式
- 深入了解android平台的jni---使用宏定义精简JNI接口函数名称
- Android-->巧用XListView,打造万能的下拉刷新控件
- Android button样式修改
- android中跨进程通讯的4种方式
- android 使用 service 实现音乐
- android studio 1.2.1.1导入library project(以sharesdk为例)
- android adb命令集
- android程序的入口
- Android 对图片的缩放,拖地,跟系统图库的效果一样
- Android调用系统存储联系人界面,以及系统短信发送
- Android 长按Listview显示CheckBox,实现批量删除。
- Android Intent参数传递
- Android中Socket大文件断点上传
- Android1.5中的AVD 总结