当前位置: 首页 > news >正文

鸿蒙开发(NEXT/API 12)【硬件(接入手写套件)】手写功能开发

接入手写套件后,可以在应用中创建手写功能界面。界面包括手写画布和笔刷工具栏两部分,手写画布部分支持手写笔和手指的书写效果绘制,笔刷工具栏部分提供多种笔刷和编辑工具,并支持对手写功能进行设置。接入手写套件后将自动开启一笔成形和报点预测功能,无需再单独接入。

场景介绍

在应用中创建手写功能界面,效果如下:

1

  1. 可以加载和显示手写笔记。
  2. 可以编辑和保存手写笔记。
  3. Pen Kit手写套件仅支持上下滑动,不支持左右滑动。

开发流程

2

接口说明

接口接口描述
[HandwriteComponent]构建手写画布控件
[HandwriteController]手写画布的主要功能入口类

开发步骤

1.导入相关模块。

import { HandwriteComponent, HandwriteController} from '@kit.Penkit';

2.构造包含手写组件的控件/页面,下面以控件为例。

@Entry
@Component
struct HandWritingComponent {controller: HandwriteController = new HandwriteController();// 根据应用存储规则,获取到手写文件保存的路径,此处仅为实例参考initPath : string = "aa";aboutToAppear(){// 加载时设置保存动作完成后的回调。this.controller.onLoad(this.callback);}// 手写文件内容加载完毕渲染上屏后的回调,通知接入用户,可在此处进行自定义行为callback = () => {// 自定义行为,例如文件加载完毕后展示用户操作指导}aboutToDisappear(){// HandWriteDemo退出时调用保存接口const path : string = `savePath`; // 需根据应用存储规则,获取到手写文件保存的路径,此处仅为实例参考this.controller?.save(path);}build() {Row() {Column() {HandwriteComponent({handwriteController: this.controller,onInit: () => {// 画布初始化完成时的回调。此时可以调用接口加载和显示笔记内容this.controller?.load(this.initPath);},onScale: (scale: number) => {// 画布缩放时的回调方法,将返回当前手写控件的缩放比例,可在此处进行自定义行为。}})}.width('100%')}.height('100%')}
}

相关文章:

  • 《深度学习》卷积神经网络 数据增强、保存最优模型 原理解析及实例实现
  • 【自动驾驶】对2D框的四条边同时缩进
  • 【07】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Swiper轮播组件与样式结构重用
  • Linux下C开发使用小技巧
  • TIM定时中断
  • 17 vue3之tsx手写vite tsx插件
  • 每天学习一个技术栈 ——【Django Channels】篇(1)
  • Kafka与RabbitMQ:深入理解两者之间的区别
  • MySQL基础--表的增删改查
  • 时间技能物品竞品抢拍拍卖发布h5公众号小程序开源版开发
  • 笔记整理—linux进程部分(2)使用fork创建进程
  • 尚品汇-自动化部署-Jenkins的安装与环境配置(五十六)
  • 十分钟实现内网连接,配置frp
  • JavaWeb图书借阅系统
  • MapBox Android版开发 6 关于Logo
  • JS 中的深拷贝与浅拷贝
  • 【347天】每日项目总结系列085(2018.01.18)
  • eclipse的离线汉化
  • java第三方包学习之lombok
  • Java面向对象及其三大特征
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • Laravel核心解读--Facades
  • PHP变量
  • SpringBoot几种定时任务的实现方式
  • SQLServer之索引简介
  • tensorflow学习笔记3——MNIST应用篇
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 分类模型——Logistics Regression
  • 警报:线上事故之CountDownLatch的威力
  • 使用docker-compose进行多节点部署
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 小李飞刀:SQL题目刷起来!
  • 再次简单明了总结flex布局,一看就懂...
  • 1.Ext JS 建立web开发工程
  • 阿里云移动端播放器高级功能介绍
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • (二)斐波那契Fabonacci函数
  • (二)原生js案例之数码时钟计时
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (计算机网络)物理层
  • (十六)视图变换 正交投影 透视投影
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)EOS中账户、钱包和密钥的关系
  • (转)http-server应用
  • ****Linux下Mysql的安装和配置
  • .NET编程C#线程之旅:十种开启线程的方式以及各自使用场景和优缺点
  • .NET框架
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [1181]linux两台服务器之间传输文件和文件夹
  • [2016.7.Test1] T1 三进制异或
  • [20170705]lsnrctl status LISTENER_SCAN1