本文原创发布在华为开发者社区。
介绍
本项目基于Canvas组件进行图片计数、图片局部涂鸦遮盖、图片局部自动绘制圆圈路径功能实现:
- 支持图片内部圆圈计数,可通过按钮增加或减少已有数值。
- 支持画笔对图片进行局部涂鸦遮盖,可切换画笔颜色以及线条粗细程度,可用橡皮擦功能撤销当前涂鸦路径
- 支持图片局部自动绘制圆圈路径并填充颜色以及数字标识,可调整切换圆圈路径底部颜色
实现图片计数功能源码链接
效果预览

使用说明
- 打开应用,展示待计数的图片以及三个按钮。
- 点击遮盖笔按钮,即可选择涂鸦线条粗细、颜色,然后进行遮盖涂鸦。
- 点击计数按钮,应用会跳转至计数页面。
- 点击橡皮擦按钮,实现消除遮盖涂鸦的效果。
实现思路
构造数据结构
构造ResponseData等结构,组成圆圈识别坐标相关响应体结构。
构建主页即图片涂鸦页
- 设置画笔组件。通过设置画图效果即预览线条粗细,画笔大小即线条粗细,画笔颜色三个属性,完成遮盖笔涂鸦的构建。
- 利用Canvas进行画图,调用onTouch进行手指操作的跟踪处理。
- 构造橡皮擦组件,点击后即可进行消除操作。
- 设置三个按钮,点击后分别实现橡皮擦功能、计数功能、遮盖涂鸦功能。
图片计数页面的实现
- 构造DrawCircle()函数,解析后端相关json字符串,实际应用需涉及http字段处理,图片实际x,y坐标对应canvas画布有缩放。
- 构造ImageCanvas(),通过Stack层叠展示Image和Canvas组件。
- 构造SetCircle(),设置圆圈画布组件,可以修改圆圈颜色。