HarmonyOS ArkUI实战开发-手势密码(PatternLock)

embedded/2024/11/14 3:09:08/

ArkUI开发框架提供了图案密码锁 PatternLock 组件,它以宫格图案的方式输入密码,用于密码验证,本节读者简单介绍一下该控件的使用。

PatternLock定义介绍

interface PatternLockInterface {(controller?: PatternLockController): PatternLockAttribute;
}declare class PatternLockController {constructor();reset();
}

PatternLock 在使用的时候,接收一个 PatternLockController 类型的控制器,该控制器用来控制组件的状态,比如重置解锁状态。

简单样例如下所示:

@Entry @Component struct PatternLockTest {build() {Column({space: 10}) {PatternLock(this.patternLockController)}.width('100%').height('100%').padding(10)}
}

PatternLock属性介绍

declare class PatternLockAttribute extends CommonMethod<PatternLockAttribute> {sideLength(value: Length): PatternLockAttribute;circleRadius(value: Length): PatternLockAttribute;backgroundColor(value: ResourceColor): PatternLockAttribute;regularColor(value: ResourceColor): PatternLockAttribute;selectedColor(value: ResourceColor): PatternLockAttribute;activeColor(value: ResourceColor): PatternLockAttribute;pathColor(value: ResourceColor): PatternLockAttribute;pathStrokeWidth(value: number | string): PatternLockAttribute;onPatternComplete(callback: (input: Array<number>) => void): PatternLockAttribute;autoReset(value: boolean): PatternLockAttribute;
}
  • sideLength:设置组件的宽度和高度,默认值为 300vp ,最小可以设置为 0。
  • circleRadius:设置宫格圆点的半径,默认值为 14vp 。
  • regularColor:设置宫格圆点在 “未选中” 状态的填充颜色,默认值为黑色。
  • selectedColor:设置宫格圆点在 “选中” 状态的填充颜色,默认值为黑色。
  • activeColor:设置宫格圆点在 “激活” 状态的填充颜色,默认值为黑色。
  • pathColor:设置连线的颜色,默认值为蓝色。
  • pathStrokeWidth:设置连线的宽度,默认值为 34vp ,最小可以设置为0。
  • autoReset:设置是否支持用户在完成输入后再次触屏重置组件状态。如果设置为 true ,用户可以通过触摸图案密码锁重置组件状态(清除之前的输入效果);如果设置为 false ,用户手指离开屏幕完成输入后,再次触摸图案密码锁(包括圆点)不能改变之前的输入状态。

PatternLock属性介绍

declare class PatternLockAttribute extends CommonMethod<PatternLockAttribute> {onPatternComplete(callback: (input: Array<number>) => void): PatternLockAttribute;
}
  • onPatternComplete:密码输入结束时被调用的回调函数,input: 与选中宫格圆点顺序一致的数字数组,数字为选中宫格的索引(0 到 8)。

PatternLock完整样例:

@Entry @Component struct PatternLockTest {@State passwords: Number[] = []@State message: string = '请验证密码'private patternLockController: PatternLockController = new PatternLockController()build() {Column({space: 10}) {Text(this.message).textAlign(TextAlign.Center).fontSize(22)PatternLock(this.patternLockController).sideLength(200)            // 设置宽高.circleRadius(7)            // 设置圆点半径.regularColor(Color.Red)    // 设置圆点颜色.pathStrokeWidth(10)        // 设置连线粗细.backgroundColor(Color.Pink)// 设置背景色.autoReset(true)            // 支持用户在完成输入后再次触屏重置组件状态.onPatternComplete((input: Array<number>) => {if (input == null || input == undefined || input.length < 5) {this.message = "密码长度至少为5位数。";return;}if (this.passwords.length > 0) {if (this.passwords.toString() == input.toString()) {this.passwords = inputthis.message = "密码设置成功"} else {this.message = '密码输入错误'}} else {this.passwords = inputthis.message = "密码输入错误"}})Button('重置密码').onClick(() => {this.passwords = [];this.message = '请验证手势密码';this.patternLockController.reset();})}.width('100%').height('100%').padding(10)}
}

小结:

文档描述说该组件从 API 8 版本开始提供,但是笔者使用的 API 8(3.1.5.5 和 3.1.6.5)版本并没有该组件,其实 SDK 里边是提供了实现的,只是没有提供相应的 dts 文件,上述样例是笔者根据文档自己添加的 dts 文件,读者如果想在 API 8 版本上使用该组件,也可自行添加 dts 文件。

码牛课堂也为了积极培养鸿蒙生态人才,让大家都能学习到鸿蒙开发最新的技术,针对一些在职人员、0基础小白、应届生/计算机专业、鸿蒙爱好者等人群,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线。大家可以进行参考学习:https://qr21.cn/FV7h05

①全方位,更合理的学习路径
路线图包括ArkTS基础语法、鸿蒙应用APP开发、鸿蒙能力集APP开发、次开发多端部署开发、物联网开发等九大模块,六大实战项目贯穿始终,由浅入深,层层递进,深入理解鸿蒙开发原理!

②多层次,更多的鸿蒙原生应用
路线图将包含完全基于鸿蒙内核开发的应用,比如一次开发多端部署、自由流转、元服务、端云一体化等,多方位的学习内容让学生能够高效掌握鸿蒙开发,少走弯路,真正理解并应用鸿蒙的核心技术和理念。

③实战化,更贴合企业需求的技术点
学习路线图中的每一个技术点都能够紧贴企业需求,经过多次真实实践,每一个知识点、每一个项目,都是码牛课堂鸿蒙研发团队精心打磨和深度解析的成果,注重对学生的细致教学,每一步都确保学生能够真正理解和掌握。

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

鸿蒙开发学习手册》:https://qr21.cn/FV7h05

如何快速入门:

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr21.cn/FV7h05

大厂鸿蒙面试题::https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.
鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向


http://www.ppmy.cn/embedded/11686.html

相关文章

新能源电站智能监控管理系统概述

一、系统概述&#xff1a; 针对光伏、风电、储能及充电桩等新能源电站&#xff0c;新能源电站智能监控管理系统提供一站式解决方案。通过实时监测电站运行状态&#xff0c;集成运行监控、智能预警、实时告警、发电分析、视频监控及运维管理等功能&#xff0c;确保电站在全生命…

Spring Boot统一功能处理

1. 统一数据返回格式 统一数据返回格式&#xff0c;就是对返回的数据做一个统一的处理&#xff1a; ControllerAdvice public class ResponseAdvice implements ResponseBodyAdvice {AutowiredObjectMapper mapper;//判断是否要执行beforeBodyWrite方法Overridepublic boolea…

用现成的容器来创建一个镜像,或者说再克隆一个一模一样的容器

前言&#xff1a;我在centos系统中使用docker拉取了一个centos镜像&#xff0c;并用这个镜像创建了一个hadoop容器&#xff0c;但是后面我又需要一个相同版本的hadoop镜像来创建其他容器&#xff08;比如hive容器&#xff09;&#xff0c;但是这个时候docker官网并没有对应版本…

Rust 认识所有权

目录 什么是所有权? 栈(Stack)与堆(Heap)所有权规则变量作用域String 类型内存与分配 变量与数据交互的方式(一):移动变量与数据交互的方式(二):克隆只在栈上的数据:拷贝所有权与函数返回值与作用域引用与借用 可变引用悬垂引用(Dangling References)引用的规则S…

蓝桥杯2024年第十五届省赛真题-爬山

贪心优先队列的题&#xff0c;贪心会漏一个情况&#xff0c;不知道怎么处理&#xff0c;这里直接打表了 2 1 1 48 49 答案是30&#xff0c;贪心是31 专有名词&#xff1a;hack-有新的测试点过不了 #include<bits/stdc.h> using namespace std; #define endl \n #define …

代码随想录训练营总结篇

代码随想录训练营总结篇 在代码训练营刷题的两个月里&#xff0c;我从一个只懂基本理论、代码实现能力经验比较差的人&#xff0c;成长为可以通过许多算法题目的有经验的程序员&#xff0c;我从这个训练营中真正学到了很多。 我也先介绍一下我自己&#xff0c;我是一名普通本科…

mybatis批量查询List实体类

在 MyBatis 中进行批量查询 List 实体类的操作通常使用 foreach 标签来实现。下面是一个示例代码&#xff0c;展示了如何在 MyBatis 中批量查询 List 实体类&#xff1a; 根据主键id 假设有一个名为 User 的实体类&#xff1a; public class User {private Long id;private …

身份证实名接口和身份证OCR接口的组合使用

随着网络技术的快速发展以及对个人信息保护意识的提升&#xff0c;身份证实名认证已成为诸多在线业务中不可或缺的一环。身份证实名接口与身份证OCR接口的有机结合&#xff0c;为用户提供了一种快速、精准、安全的身份信息核验方式。 首先&#xff0c;用户在应用程序或网站界面…