摘要: Region.Op有INTERSECT、DIFFERENCE、REPLACE、REVERSE_DIFFERENCE、UNION、XOR七种选择文档没有详细说明,所以查了点资料并简单的测试了下,权当记忆之用先看我的测试View的代码@Overrideprotected void onDraw(Canvas canvas) {Path path1 = new Path();path1.addRect(200, 200, 400, 400, Direction.CW);canvas.clipPath(path1);canvas.drawBitmap(red,0, 0, null);Path path 阅读全文
posted @ 2012-02-09 22:19 luozhifu 阅读(736) 评论(0) 推荐(0) 编辑
摘要: android切割画布的历程不算很难,可是理解起来也比较麻烦,这里写一下我的理解 但是不一定正确: canvas.clipRect(30, 30, 70, 70, Region.Op.XOR);最后一个参数有多个选择分别是://DIFFERENCE是第一次不同于第二次的部分显示出来 //REPLACE是显示第二次的 //REVERSE_DIFFERENCE 是第二次不同于第一次的部分显示 //INTERSECT交集显示 //UNION全部显示 //XOR补集 就是全集的减去交集生育部分显示 import android.content.Context; import android.... 阅读全文
posted @ 2012-02-09 16:54 luozhifu 阅读(1723) 评论(0) 推荐(0) 编辑
摘要: 在创建新的控件或修改现有的控件时,我们都会涉及到重写控件或View的onDraw方法。onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布。在onDraw方法里,我们经常会看到调用save和restore方法,它们到底是干什么用的呢?save:用来保存Canvas的状态。save之后,可以调用Canvas的平移、放缩、旋转、错切、裁剪等操作。restore:用来恢复Canvas之前保存的状态。防止save后对Canvas执行的操作对后续的绘制有影响。save和restore要配对使用(restore可以比save少,但不能多),如果restore调用次数比save多,会 阅读全文
posted @ 2012-02-09 16:52 luozhifu 阅读(866) 评论(0) 推荐(0) 编辑