二维图形之间可以通过“加”,“减”,“交”,“异或”等逻辑运算构成新的图形。

本例使用了两个矩形通过“加”,“减”,“交”,“异或”构成组合后的图像,Region除支持矩形外,还可以使用Path来定义一个任意区域,然后再组合成复杂形状。可以参见Android简明开发教程十四:Context Menu 绘制几何图形 “梨子”。

canvas.save();canvas.translate(0, 140);drawRgn(canvas, Color.RED, "Union", Region.Op.UNION);canvas.restore(); canvas.save();canvas.translate(0, 280);drawRgn(canvas, Color.BLUE, "Xor", Region.Op.XOR);canvas.restore(); canvas.save();canvas.translate(160, 140);drawRgn(canvas, Color.GREEN, "Difference", Region.Op.DIFFERENCE);canvas.restore(); canvas.save();canvas.translate(160, 280);drawRgn(canvas, Color.WHITE, "Intersect", Region.Op.INTERSECT);canvas.restore(); ... private void drawRgn(Canvas canvas, int color, String str, Region.Op op) { if (str != null) { mPaint.setColor(Color.BLACK); canvas.drawText(str, 80, 24, mPaint); }  Region rgn = new Region(); rgn.set(mRect1); rgn.op(mRect2, op);  mPaint.setColor(color); RegionIterator iter = new RegionIterator(rgn); Rect r = new Rect();  canvas.translate(0, 30); mPaint.setColor(color); while (iter.next(r)) { canvas.drawRect(r, mPaint); } drawOriginalRects(canvas, 0x80);}


Regions_第1张图片" src="https://img.it610.com/image/info5/a6bfe995d49e4d0eb16da997856ce3ad.jpg" width="329" height="489" style="border:1px solid black;">

更多相关文章

  1. Android绘图基础:Canvas、Paint、Path的简单使用
  2. 仿苹果音量调节柱
  3. 排班表实现-----Android
  4. Android核心分析(28)-----Android(安卓)GDI之Surface&Canvas
  5. Android8.0 图形引擎的心跳 - Vsync信号
  6. Android(安卓)ApiDemos示例解析(58):Graphics->Clipping
  7. Android绘图基础:Canvas、Paint等的使用
  8. Android服务端本地窗口FramebufferNativeWindow
  9. Android的图形与图像处理之三 逐帧动画(Frame)

随机推荐

  1. MySQL索引下推(ICP)的简单理解与示例
  2. 五分钟让你快速弄懂MySQL索引下推
  3. MySQL的索引系统采用B+树的原因解析
  4. Mysql prepare预处理的具体使用
  5. mysql索引失效的十大问题小结
  6. mysql隔离级别详解及示例
  7. Docker启动mysql配置实现过程
  8. MySQL中常见的六个约束类型详解
  9. MySQL中的回表和索引覆盖示例详解
  10. 浅谈订单重构之 MySQL 分库分表实战篇