# doodlelib **Repository Path**: kingwild/doodlelib ## Basic Information - **Project Name**: doodlelib - **Description**: Harmony OS 涂鸦 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-08 - **Last Updated**: 2026-02-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DoodleLib DoodleLib 是一个基于 OpenHarmony/HarmonyOS 的涂鸦绘图库,提供了丰富的绘图功能和工具组件。 ## 项目简介 DoodleLib 为 OpenHarmony 应用提供了一个完整的涂鸦绘图解决方案,包含多种绘图工具、形状绘制、图层管理和交互功能。 ## 功能特性 ### 绘图工具 - **自由画笔 (Pen)**: 支持自由绘制线条 - **几何图形**: 支持绘制圆形 (Circle)、箭头线 (LineArrow) - **贴纸 (Sticker)**: 支持添加贴纸元素 - **橡皮擦 (None)**: 支持擦除功能 ### 交互组件 - **DoodleView**: 核心绘图视图组件 - **DoodleController**: 绘图控制器,管理绘图状态 - **TopToolbar**: 顶部工具栏 - **BottomToolbar**: 底部工具栏 - **SelectableCircleIcon**: 可选择的圆形图标组件 ### 辅助功能 - **BaseDoodleShape**: 基础图形抽象类 - **DoodleResultEvent**: 绘图结果事件 - **DoodleUtils**: 工具函数集 - **Calc**: 计算工具类 ## 项目结构 ``` doodlelib/ ├── AppScope/ # 应用作用域资源 ├── doodle/ # 绘图库模块 │ ├── src/main/ets/ │ │ ├── components/ # UI 组件 │ │ │ ├── BottomToolbar.ets │ │ │ ├── DoodleController.ets │ │ │ ├── DoodleView.ets │ │ │ ├── SelectableCircleIcon.ets │ │ │ └── TopToolbar.ets │ │ ├── core/ # 核心绘图类 │ │ │ ├── BaseDoodleShape.ets │ │ │ ├── Circle.ets │ │ │ ├── LineArrow.ets │ │ │ ├── None.ets │ │ │ ├── Pen.ets │ │ │ ├── Sticker.ets │ │ │ ├── DoodleResultEvent.ets │ │ │ └── DoodleUtils.ets │ │ ├── doodleability/ # 能力接口 │ │ │ └── DoodleAbility.ets │ │ ├── pages/ # 页面 │ │ │ ├── DoodlePage.ets │ │ │ └── Index.ets │ │ └── utils/ # 工具类 │ │ └── Calc.ets │ └── src/test/ # 单元测试 ├── entry/ # 示例应用入口 ├── hvigor/ # 构建配置 └── build-profile.json5 # 构建配置文件 ``` ## 环境要求 - OpenHarmony SDK 3.1.0 或更高版本 - DevEco Studio 3.0 或更高版本 - ArkTS 语言 ## 快速开始 1. **克隆项目** ```bash git clone https://gitee.com/kingwild/doodlelib.git ``` 2. **导入项目** - 使用 DevEco Studio 打开项目根目录 - 等待项目构建完成 3. **运行应用** - 选择 entry 模块 - 点击运行按钮或在模拟器/真机上调试 ## 使用示例 ### 在应用中使用 DoodleView ```typescript import { DoodleView } from '@doodlelib/doodle'; @Entry @Component struct Index { build() { Column() { DoodleView() .width('100%') .height('80%') } } } ``` ### 使用 DoodleController 控制绘图 ```typescript import { DoodleController } from '@doodlelib/doodle'; @Entry @Component struct DoodlePage { private controller: DoodleController = new DoodleController(); build() { Column() { DoodleView({ controller: this.controller }) } } } ``` ## API 文档 ### DoodleController 绘图控制器,用于管理绘图状态和操作。 - `setPenColor(color: Color)`: 设置画笔颜色 - `setPenWidth(width: number)`: 设置画笔宽度 - `undo()`: 撤销上一步操作 - `redo()`: 重做操作 - `clear()`: 清空画布 ### DoodleView 核心绘图组件,支持多种绘图模式。 - `setMode(mode: DrawingMode)`: 设置绘图模式 - `getDrawingBitmap()`: 获取当前绘图结果 ## 测试 项目包含完整的单元测试,位于 `doodle/src/test/` 目录下: ```bash # 运行所有测试 hvigor test ``` ## 贡献指南 1. Fork 本仓库 2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交您的更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建一个 Pull Request ## 许可证 本项目基于 [MIT License](LICENSE) 许可证开源。 ## 联系方式 - 项目地址: https://gitee.com/kingwild/doodlelib - 问题反馈: https://gitee.com/kingwild/doodlelib/issues