代码拉取完成,页面将自动刷新
本示例使用Drawing进行图形绘制与显示时,使用@ohos.graphics.drawing模块的画布画笔绘制基本的2D图形和文字,调用绘制和显示的逻辑,在应用上显示图形和文字。功能主要包括点击按钮绘制一个五角星、矩形和“Hello World”文字。
使用说明
安装编译生成的hap包,并打开应用。
点击页面底部“Draw Path”按钮,页面将绘制一个五角星;
点击页面底部“Draw Rect”按钮,页面将绘制一个矩形;
点击页面底部“Draw Text”按钮,页面将绘制“Hello World”。
主页 | 绘制五角星 | 绘制矩形 | 绘制文字 |
---|---|---|---|
├──entry/src/main
│ ├──ets // ets代码区
│ │ ├──entryability
│ │ │ ├──EntryAbility.ts // 程序入口类
| | | └──EntryAbility.ets
│ │ └──pages // 页面文件
│ │ └──Index.ets // 主界面
| └──resources // 资源文件目录
在IDE中创建空白工程,在js侧drawing提供两种方式实现自定义绘制:
RenderNode
子类MyRenderNode
,并在其中定义绘图函数。构建出MyRenderNode类并在其中定义绘图的主要函数后,接下来创建一个MyRenderNode对象,并设置它的像素格式。创建NodeController
的子类MyNodeController
,并在其中定义创建FrameNode
的函数。NodeController
定义了节点容器的控制器,控制着容器里在生命周期中的节点。通过控制创建的节点即可画出五角星和文字。源码参考:pages目录下的文件。
涉及到的相关接口:
接口名 | 描述 |
---|---|
drawPath(path: Path) : void | 画一个自定义路径。 |
drawRect(rect: common2D.Rect): void | 用于绘制一个矩形,默认使用黑色填充。 |
drawTextBlob(blob: TextBlob, x: number, y: number): void | 用于绘制一段文字。 |
moveTo(x: number, y: number) : void | 设置自定义路径的起始点位置。 |
lineTo(x: number, y: number) : void | 添加一条到目标点的线段。 |
close(): void | 闭合路径,会添加一条到路径起点位置的线段。 |
setAntiAlias(antiAlias: boolean) : void | 用于设置画笔是否开启反走样。开启后,可以使得图形的边缘在显示时更平滑。 |
setColor(color: common2D.Color) : void | 用于设置画笔和画刷的颜色。 |
setStrokeWidth(width: number) : void | 用于设置画笔的线宽。 |
attachPen(pen: Pen): void | 绑定画笔给画布,画布将使用画笔的样式和颜色去绘制图形形状的轮廓。 |
attachPen(pen: Pen): void | 绑定画笔给画布,画布将使用画笔的样式和颜色去绘制图形形状的轮廓。 |
detachPen(): void | 清空画布上设置的画笔,画布将不再使用画笔绘制图形。 |
detachBrush(): void | 清空画布上设置的画刷,画布将不再使用画刷绘制图形。 |
详细的接口说明请参考Drawing。
不涉及。
RenderNode。
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/BasicFeature/Native/NdkTsDrawing/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。