OpenHarmony - ArkUI(TS)声明式开发之画板 原创 精华
作者:梁青松
项目介绍
本项目基于OpenHarmony的ArkUI框架:TS扩展的声明式开发范式,关于语法和概念直接看官网官方文档地址:基于TS扩展的声明式开发范式,因为OpenHarmony的API相对于HarmonyOS的API,功能上比较完善和成熟的,有些新的技术也早早接触到,所以本项目直接使用OpenHarmony SDK开发。
工具版本: DevEco Studio 3.0 Beta4
SDK版本: 3.1.6.6(API Version 8 Release)
项目功能: 1、画笔功能:可设置画笔粗细和颜色;2、橡皮擦功能:可设置粗细;3、撤回和回撤功能;4:清空画板功能;
文件说明
效果演示
用到的API
画布组件canvas:画布组件,用于自定义绘制图形。
方法/属性 | 解释 |
---|---|
beginPath() | 创建一个新的绘制路径 |
moveTo() | 路径从当前点移动到指定点 |
lineTo() | 从当前点到指定点进行路径连接 |
stroke() | 进行边框绘制操作 |
clearRect() | 清空画布 |
strokeStyle | 属性:设置描边的颜色 |
lineWidth | 属性:设置绘制线条的宽度 |
globalCompositeOperation | 属性:设置合成操作的方式 |
实现思路
1. 画笔功能
使用onTouch方法,监听触摸事件,手指按下:使用方法moveTo记录起点,手指移动:使用方法beginPath创建新的路径,lineTo记录移动的点,并绘制。
(代码片段,详细请查看源码)
2. 橡皮擦功能
设置绘制属性:globalCompositeOperation
画笔设置此属性值: source-over (默认值 在现有绘制内容上显示新绘制内容),橡皮擦设置此属性值: destination-out ( 在新绘制内容外显示现有绘制内容)
3. 撤回和回撤功能
数据类,记录每次绘制的信息,线颜色、宽度、坐标点集合,每次画完保存到数组中
每次绘制的信息,保存在数组中,在点击撤回时,撤回数+1;回撤时,撤回数-1,并截取数组,清空画布,遍历数组绘制笔画信息。
(代码片段,详细请查看源码)
总结
此项目并没有特别复杂的地方,注释也很详细,以上列出的代码都是实现主要的功能,颜色选择功能查看我之前的帖子 – Openharmony - 基于ArkUI(TS)开发颜色选择器,其他细节请查看源码,最后不得不感慨声明式语法的强大和简洁性,完成此功能相对于使用JS来实现效率提升很高,也希望鸿蒙社区越来越好,融入更多的热爱者。
项目地址: OpenHarmony - ArkUI(TS)声明式开发之画板
每天进步一点点、需要付出努力亿点点。
更多原创内容请关注:中软国际 HarmonyOS 技术团队
入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。
很好的展示了canvas的各个功能,学习果然还是要实际操作才行。
官网的讲解太少了,很多需要自己摸索
期待canvas能开放更多功能
好奇画板主要应用的场景是在哪里?
感觉编辑图片用的比较多
每次新版本的API就等大佬来解读了
看演示挺流畅的,看来优化的不错