效果图预览
使用说明
- 加载完成后显示登录界面,未勾选协议时点击一键登录按钮会触发手机振动效果和提示文本的抖动动画。
实现思路
- 创建一个函数startVibrate()调用vibrator.startVibration方法实现手机振动效果(需要权限:ohos.permission.VIBRATE)。源码参考VibrateEffect.ets
startVibrate() {
try {
// TODO: 知识点:vibrator.startVibration 根据指定振动效果和振动属性触发马达振动
vibrator.startVibration({
type: ‘time’,
// 持续触发马达振动时间600ms
duration: 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}
);
}
}
- 创建一个函数startAnimation()使用animateTo显示动画实现提示文本的抖动动画。源码参考VibrateEffect.ets
startAnimation() {
// TODO: 知识点:通过animateTo显示动画指定由于闭包代码导致的状态变化插入过渡动效
animateTo({
duration: CONFIGURATION.ANIMATION_TIME,
// 弹簧曲线:初始速度100,质量1,刚度80,阻尼10
curve: 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 // 视图层-场景列表页面
模块依赖
参考资料
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数HarmonyOS鸿蒙开发工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年HarmonyOS鸿蒙开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
662893534)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!