HarmonyOS NEXT应用开发—使用弹簧曲线实现抖动动画及手机振动效果案例

介绍

本示例介绍使用vibrator.startVibration方法实现手机振动效果,用animateTo显示动画实现点击后的抖动动画。

效果图预览

使用说明

  1. 加载完成后显示登录界面,未勾选协议时点击一键登录按钮会触发手机振动效果和提示文本的抖动动画。

实现思路

  1. 创建一个函数startVibrate()调用vibrator.startVibration方法实现手机振动效果(需要权限:ohos.permission.VIBRATE)。源码参考VibrateEffect.ets
  startVibrate() {try {// TODO: 知识点:vibrator.startVibration 根据指定振动效果和振动属性触发马达振动vibrator.startVibration({type: 'time',// 持续触发马达振动时间600msduration: CONFIGURATION.VIBRATION_TIME,}, {id: 0,usage: 'alarm',}, (error: BusinessError) => {if (error) {logger.error(`Failed to start vibration. Code: ${error.code}, messege: ${error.message}`);return;}logger.info('Succeed in starting vibration');});} catch (err) {let e: BusinessError = err as BusinessError;logger.error(`An unexpected error occurred. Code: ${e.code}, message: ${e.message}`);}}
  1. 创建一个函数startAnimation()使用animateTo显示动画实现提示文本的抖动动画。源码参考VibrateEffect.ets
  startAnimation() {// TODO: 知识点:通过animateTo显示动画指定由于闭包代码导致的状态变化插入过渡动效animateTo({duration: CONFIGURATION.ANIMATION_TIME,// 弹簧曲线:初始速度100,质量1,刚度80,阻尼10curve: curves.springCurve(CONFIGURATION.VELOCITY_VALUE, CONFIGURATION.MASS_VALUE,CONFIGURATION.STIFFNESS_VALUE, CONFIGURATION.DAMPING_VALUE),// 播放2次iterations: CONFIGURATION.PLAYBACK_COUNT,},() => {// 抖动动偏移量this.translateX = CONFIGURATION.TRANSLATE_OFFSET_X;})this.translateX = CONFIGURATION.POSITION_ZERO;}

高性能知识点

不涉及

工程结构&模块类型

vibrateeffect                                   // har类型
|---components
|   |---constantsData.ets                       // 定义常量数据
|---ProductView.ets                             // 视图层-场景列表页面

模块依赖

本实例依赖common模块来实现日志的打印、资源的调用

参考资料

显式动画

@ohos.vibrator (振动)

访问控制授权申请

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

《鸿蒙开发学习手册》: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

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

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


腾讯T10级高工技术,安卓全套VIP课程全网免费送:https://qr21.cn/D2k9D5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/746542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成原理练习-计算机工作过程

高级语言与机器语言之间的转换 ------------------------------------------------------------------------------------------------------------------------------- 1.将高级语言源程序转换为机器级目标代码文件的程序是()。 A.汇编程序 …

【HyperLips:】数字人——控制嘴唇 项目源码python实现

最近受到商汤“复活”汤晓鸥的视频刺激,大大的amazing!没看过的小伙伴可以自行百度,看了不研究一下【数字人】技术,都要跟时代脱轨了,那就以HyperLips为开篇吧。 目录 🍎🍎1.摘要 &#x1f3…

利益相关者理论(stakeholder theory)

(一)前言 利益相关者理论是20世纪60年代左右在西方国家逐步发展起来的、进入20世纪80年代以后其影响迅速扩大,并开始影响美英等国的公司治理模式的选择,并促进了企业管理方式的转变。之所以会出现利益相关者理论,是有其…

浅谈C/C++的new和delete以及对象池的实现

今天我们来谈谈C中的new和delete😊😊😊。在软件开发中,常常需要动态地分配和撤销内存空间,C语言中利用库函数malloc和free分配和撤销内存空间的。而在C中则是 new和delete malloc函数时必须指定需要开辟的内存空间的大小&#xf…

突破编程_C++_设计模式(解释器模式)

1 解释器模式的基本概念 C 解释器模式的基本概念主要涉及到给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 解释器模式解决的问题是,如果一种特定类型的问题发生的频率足够高…

【vue baidu-map】实现百度地图展示基地,鼠标悬浮标注点展示详细信息

实现效果如下&#xff1a; 自用代码记录 <template><div class"map" style"position: relative;"><baidu-mapid"bjmap":scroll-wheel-zoom"true":auto-resize"true"ready"handler"><bm-mar…

为何虎茅掌柜 短短6个月会员近百万 月销售额破亿!

大家好 我是吴军 一家软件开发公司的产品经理 今天我们来分析一下&#xff0c;一个卖酒的模式 为什么这家平台短短6个月&#xff0c;发展百万名用户&#xff0c;月销售额破亿! 虎茅掌柜&#xff0c;切记这个虎茅和茅台的那个没有任何关系 虎茅掌柜 虎茅掌柜实质上是一种…

Spring Bean的生命周期流程

前言 Java 中的公共类称之为Java Bean&#xff0c;而 Spring 中的 Bean 指的是将对象的生命周期&#xff0c;交给Spring IoC 容器来管理的对象。所以 Spring 中的 Bean 对象在使用时&#xff0c;无需通过 new 来创建对象&#xff0c;只需要通过 DI&#xff08;依赖注入&#x…

2024 MCM数学建模美赛2024年A题复盘,思路与经验分享:资源可用性与性别比例 | 七鳃鳗的性别比例变化对生态系统稳定性的影响(四)

审题 第三问要我们评估七鳃鳗的性别比例变化对生态系统稳定性的影响。 这里我们就要去查一下生态系统稳定性的定义。 通过查资料我们知道&#xff0c;生态系统稳定性包括生态系统的抵抗力和恢复力。 OK&#xff0c;到这里问题就变成了&#xff0c;七鳃鳗的性别比例对生态系…

漏洞复现-H3C系列

漏洞复现-H3C H3C 用户自助服务平台远程命令执行漏洞H3C堡垒机H3C防火墙 admin/adminH3C root/h3c123.com【漏洞复现】华三用户自助服务产品dynamiccontent.properties.xhtml接口处存在RCE漏洞H3C交换机H3C cas_cvm_upload-RCE (默认写入冰蝎4.0. 3aes)H3C CVM任意文件上传漏洞…

用crypto库的哈希函数CryptoPP::SHA256实现最简单的区块链20240101

最简单的区块链代码: Crypto 库和 OpenSSL 库中的哈希函数比较 Crypto 库和 OpenSSL 库都提供了各种哈希函数&#xff0c;包括 SHA256 函数。 效率方面 两者在哈希计算速度上都比较接近&#xff0c;但 Crypto 库可能略快一些。Crypto 库提供了多线程支持&#xff0c;可以进一…

Java 根据IP获取IP地址信息(离线)

<!-- https://mvnrepository.com/artifact/org.lionsoul/ip2region --><dependency><groupId>org.lionsoul</groupId><artifactId>ip2region</artifactId><version>2.7.0</version></dependency> 地址&#xff1a;http…

【计算机网络】1.5 分组交换网中的时延、丢包和吞吐量

A.分组交换网中的时延 当分组从一个节点沿着路径到后一节点时&#xff0c;该分组在沿途的各个节点经受了几种不同类型的时延。 时延的类型 处理时延 - d n o d a l d_{nodal} dnodal​ 处理时延包括以下部分—— a. 检查分组首部 b. 决定分组导向 排队时延 - d p r o c d_{…

算法基础杂项

目录 1算法最优解 2.时间复杂度排序 3.对数器 1算法最优解 1.首先&#xff0c;保证时间复杂度最低 2.其次&#xff0c;保证空间复杂度最低 3.常数项低不低&#xff0c;一般没人管 2.时间复杂度排序 3.对数器 import java.util.Arrays;public class Test {public static …

KY210 排序

描述&#xff1a; 对输入的n个数进行排序并输出。 输入描述&#xff1a; 输入的第一行包括一个整数n(1<n<100)。 接下来的一行包括n个整数。 输出描述&#xff1a; 可能有多组测试数据&#xff0c;对于每组数据&#xff0c;将排序后的n个整数输出&#xff0c;每个数后面都…

Elasticsearch使用Kibana进行基础操作

一、Restful接口 Elasticsearch通过RESTful接口提供与其进行交互的方式。在ES中&#xff0c;提供了功能丰富的RESTful API的操作&#xff0c;包括CRUD、创建索引、删除索引等操作。你可以用你最喜爱的 web 客户端访问 Elasticsearch 。事实上&#xff0c;你甚至可以使用 curl …

Autoware.auto源码安装

自 2022 年以来&#xff0c;已将 Autoware 的开发迁移到 GitHub。目前Auto版本并没有进行最新维护 一、官网 Autoware.Auto (autowarefoundation.gitlab.io) 二、介绍 Autoware是世界上第一个由Autoware基金会托管的用于自动驾驶汽车的“一体化”开源软件。基于 ROS 2 的 Au…

【25届秋招备战C++】题型练习-背包问题

【25届秋招备战C】题型练习-背包问题 0-1背包416 - 分割等和子集1049 - 最后一块石头的重量 Ⅱ494 - 目标和474- 一和零 完全背包518- 零钱兑换Ⅱ377- 组合总数Ⅱ322- 零钱兑换279- 完全平方数 参考 0-1背包 416 - 分割等和子集 链接: 分割等和子集 解题思路&#xff1a;给定…

单片机中的几种周期(振动/时钟,状态,机械,指令周期)表示的含义(51为例)

几种周期含义及个人理解描述 参考&#xff1a;短文&#xff0c;参考&#xff0c;百度 个人理解简述&#xff1a;对于几个周期性来说&#xff0c;可以认为是小单位的时间组合成了长时间。就像把一个数据赋值&#xff0c;这个是简单的一个机械周期能完成的动作&#xff0c;但需要…

删除远程的master分支,并创建dev分支,将代码推送到dev分支上

在执行这些操作之前&#xff0c;确保你对远程仓库有足够的权限来删除分支和推送代码。下面的步骤将指导你如何删除远程的master分支&#xff0c;创建一个新的dev分支&#xff0c;并将代码推送到这个新分支上。 1. 删除远程的master分支 首先&#xff0c;使用以下命令删除远程…