通常咱们理解的clip(剪切),是对已经存在的图形进行clip的。但是,在android上是对canvas(画布)上进行clip的,要在画图之前对canvas进行clip,如果画图之后再对canvas进行clip不会影响到已经画好的图形。一定要记住clip是针对canvas而非图形。

接下来通过android自带的APIdemo Clipping例子详细讲述Clip中的Op的参数的意思。Android提供clipRect、clipPath和clipRegion剪切区域的API。 Op一共有 DIFFERENCE,INTERSECT,UNION,XOR, REVERSE_DIFFERENCE, REPLACE六种选择。 例子: canvas上剪切从(0,0)到(60,60)的方块。下图蓝色区域加紫色区域。 canvas上剪切从(40,40)到(100,100)的方块。下图橄榄色区域加紫色区域。 canvas上剪切从(0,0)到(100,100)的方块。


先在第二方块上加上Op参数例如:canvas.clipRect(40, 40, 100, 100, Region.Op. DIFFERENCE); 首先,需要搞清楚Op参数针对的对象。接着了解其含义。 Op参数针对的对象是之前剪切的区域以及当前要剪切的区域。 在本例中涉及到区域是从(0,0)到(60,60)的方块和从(40,40)到(100,100)的方块。 那有哪些含义呢?就是表示当前要剪切的区域与之前剪切过的之间的关系。 DIFFERENCE:之前剪切过除去当前要剪切的区域(蓝色区域)。 INTERSECT:当前要剪切的区域在之前剪切过内部的部分(紫色区域)。 UNION:当前要剪切的区域加上之前剪切过内部的部分(蓝色区域+紫色区域+橄榄色区域)。 XOR:异或,当前要剪切的区域与之前剪切过的进行异或。(蓝色区域+橄榄色区域)。 REVERSE_DIFFERENCE:与DIFFERENCE相反,以当前要剪切的区域为参照物,当前要剪切的区域除去之前剪切过的区域(橄榄色区域); REPLACE:用当前要剪切的区域代替之前剪切过的区域。(橄榄色区域+紫色区域); 没带Op参数效果与INTERSECT的效果一样,两个区域的交集。

更多相关文章

  1. Android中单击空白区域隐藏键盘
  2. Android点击EditText以外区域隐藏键盘Fragment同样适用
  3. Android积木之 点击空白区域隐藏小键盘
  4. Android 相机拓展库,能够实时采集并且识别相机内物体边框是否吻合
  5. Android 使用HTTPClient调用Web请求(查询手机号码区域)
  6. Android GLSurfaceView在屏幕旋转后绘图区域异常的解决办法
  7. android 华为Mate 10 spinner 点击区域bug
  8. Android监听Dialog点击外部区域
  9. Android 在TextView中加入多个点击文本区域

随机推荐

  1. 疯狂Android讲义
  2. 配置eclipse的android开发环境
  3. android 学习示例
  4. Android(安卓)判断SD卡是否存在及容量查
  5. Android中listview中的button
  6. 系出名门Android(8)
  7. Android新增一个音频类型及双音频输出的
  8. Android(安卓)安装位置 - installLocatio
  9. android的init.rc文件的语法
  10. 【转】android 有效解决achartengine在sc