1# Drawing API示例(C/C++) 2 3#### 介绍 4 5Drawing模块提供包括2D图形渲染、文字绘制和图片显示等功能函数。这是一个基于Drawing图形库API(C/C++)的示例项目,展示如何使用Drawing API进行基础的2D图形绘制操作,详见[drawing](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/graphics/graphic-drawing-overview.md)。 6 7#### 效果预览 8 9 10 11 12 13 14 15 16 17 18 19 20#### 具体实现 21 22使用Drawing进行图形绘制与显示时,需要使用Native Drawing模块的画布画笔绘制一个基本的2D图形;并将图形内容写入NativeWindow提供的图形Buffer,将Buffer提交到图形队列;再利用XComponent将C++代码层与ArkTS层对接,实现在ArkTS层调用绘制和显示的逻辑,并在应用上显示图形。 23 24### 使用说明 25 261. 在主界面,可以点击对应按钮,选择需要参考的API示例(主界面的一个按钮对应一个API头文件)。 27 282. 进入示例界面,查看参考示例(如果有按钮,需要点击按钮才能查看对应的场景示例)。 29 30#### 工程目录 31 32``` 33├──entry/src/main 34│ ├──cpp // C++代码区 35│ │ ├──CMakeLists.txt // CMake配置文件 36│ │ ├──napi_init.cpp // Napi模块注册 37│ │ ├──common // 日志封装定义文件 38│ │ │ └──log_common.h 39│ │ ├──plugin // 生命周期管理模块 40│ │ │ ├──plugin_manager.cpp 41│ │ │ └──plugin_manager.h 42│ │ ├──samples // samples渲染及示例模块 43│ │ │ ├──sample_brush.cpp // drawing_brush.h对应的cpp示例 44│ │ │ ├──sample_canvas.cpp // drawing_canvas.h对应的cpp示例 45│ │ │ ├──sample_graphics.cpp // samples渲染的cpp文件 46│ │ │ ├──sample_matrix.cpp // drawing_matrix.h对应的cpp示例 47│ │ │ ├──sample_path.cpp // drawing_path.h对应的cpp示例 48│ │ │ ├──sample_pen.cpp // drawing_pen.h对应的cpp示例 49│ │ │ ├──sample_pixelmap.cpp // drawing_pixelmap.h等文件对应的cpp示例 50│ │ │ ├──sample_rect.cpp // drawing_rect.h对应的cpp示例 51│ │ │ └──sample_graphics.h // samples渲染的头文件 52│ │ ├──types // 不涉及 53│ │ ├──utils // 多设备适配工具类 54│ │ │ ├──adaptation_utils.cpp 55│ │ │ └──adaptation_utils.h 56│ ├──ets // ets代码区 57│ │ ├──drawing 58│ │ │ ├──pages 59│ │ │ │ ├──BitmapDrawing.ets // drawing_bitmap.h对应的示例展示界面 60│ │ │ │ ├──BrushDrawing.ets // drawing_brush.h对应的示例展示界面 61│ │ │ │ ├──CanvasDrawing.ets // drawing_canvas.h对应的示例展示界面 62│ │ │ │ ├──ImageDrawing.ets // drawing_image.h对应的示例展示界面 63│ │ │ │ ├──MatrixDrawing.ets // drawing_matrix.h对应的示例展示界面 64│ │ │ │ ├──PathDrawing.ets // drawing_path.h对应的示例展示界面 65│ │ │ │ ├──PenDrawing.ets // drawing_pen.h对应的示例展示界面 66│ │ │ │ ├──PixelMapDrawing.ets // drawing_pixel_map.h对应的示例展示界面 67│ │ │ │ └──RectDrawing.ets // drawing_rect.h对应的示例展示界面 68│ │ ├──entryability // 不涉及 69│ │ ├──entrybackupability // 不涉及 70| | ├──interface 71│ │ │ └──XComponentContext.ts // XComponentContext 72│ │ └──pages // 页面文件 73│ │ └──Index.ets // 主界面 74| ├──resources // 资源文件目录(不涉及) 75``` 76 77#### 相关权限 78 79暂无 80 81#### 依赖 82 83暂无 84 85## 约束和限制 86 871. 本示例支持标准系统上运行,支持设备:RK3568; 88 892. 本示例支持API14版本SDK,版本号:5.0.3.58; 90 913. 本示例已支持使DevEco Studio 5.0.11 Release (构建版本:5.0.11.100,构建 2025年4月22日)编译运行 92 93## 下载 94 95如需单独下载本工程,执行如下命令: 96 97``` 98git init 99git config core.sparsecheckout true 100echo code/DocsSample/Drawing/NDKAPIDrawing/ > .git/info/sparse-checkout 101git remote add origin https://gitee.com/openharmony/applications_app_samples.git 102git pull origin master 103```