Android(安卓)ApiDemos示例解析(76):Graphics->Regions
16lz
2021-01-24
二维图形之间可以通过“加”,“减”,“交”,“异或”等逻辑运算构成新的图形。
本例使用了两个矩形通过“加”,“减”,“交”,“异或”构成组合后的图像,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;">
更多相关文章
- Android绘图基础:Canvas、Paint、Path的简单使用
- 仿苹果音量调节柱
- 排班表实现-----Android
- Android核心分析(28)-----Android(安卓)GDI之Surface&Canvas
- Android8.0 图形引擎的心跳 - Vsync信号
- Android(安卓)ApiDemos示例解析(58):Graphics->Clipping
- Android绘图基础:Canvas、Paint等的使用
- Android服务端本地窗口FramebufferNativeWindow
- Android的图形与图像处理之三 逐帧动画(Frame)