首页 > 其他分享 >HarmonyOS NEXT应用开发—听歌识曲水波纹特效案例

HarmonyOS NEXT应用开发—听歌识曲水波纹特效案例

时间:2024-04-23 18:13:37浏览次数:21  
标签:水波纹 动画 识曲 知识点 听歌 animateTo iterations duration

介绍

在很多应用中,会出现点击按钮出现水波纹的特效。

效果图预览

image

使用说明

  1. 进入页面,点击按钮,触发水波纹动画。
  2. 再次点击按钮,停止水波纹动画。

实现思路

本例涉及的关键特性和实现方案如下:

  1. 要实现存在两个连续的涟漪,需要两个层叠的Stack分别以一定延迟进行相同的动画。源码参考WaterRipples.ets
Stack()
.ripplesStyle()
.opacity(this.immediatelyOpacity)
.scale(this.immediatelyScale)
Stack()
.ripplesStyle()
.opacity(this.delayOpacity)
.scale(this.delayScale)
  1. 通过点击按钮来判断isListening变量,如果为true则添加动画。涟漪动画实际上的效果为透明度0.8->0,半径扩大到6倍的动画,持续时间无限。源码参考WaterRipples.ets
/** TODO: 知识点:新建两个动画,分别修改两个Stack的属性,设置延迟200ms,展示为两个连续的涟漪,iterations设置为-1表示无限重复
* 高性能知识点:建议使用系统提供的动画接口,如果使用自定义动画,在动画曲线计算过程很容易引起UI线程高负载。
* 参考《减少动画丢帧》文章
* https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/performance/reduce-animation-frame-loss.md/
**/
animateTo({ duration: this.ANIMATION_DURATION, iterations: -1, curve: Curve.EaseInOut }, () => {
  this.immediatelyOpacity = 0;
  this.immediatelyScale = { x: 6, y: 6 };
})
animateTo({ duration: this.ANIMATION_DURATION, iterations: -1, curve: Curve.EaseInOut, delay: 200 }, () => {
  this.delayOpacity = 0;
  this.delayScale = { x: 6, y: 6 };
})
  1. 如果isListening为false,则用持续时间为0的动画来打断持续时间无限的动画。源码参考WaterRipples.ets
/** TODO: 知识点:新建两个动画,分别修改两个Stack的属性,设置延迟200ms,展示为两个连续的涟漪,iterations设置为-1表示无限重复
* 高性能知识点:建议使用系统提供的动画接口,如果使用自定义动画,在动画曲线计算过程很容易引起UI线程高负载。
* 参考《减少动画丢帧》文章
* https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/performance/reduce-animation-frame-loss.md/
**/
animateTo({ duration: this.ANIMATION_DURATION, iterations: -1, curve: Curve.EaseInOut }, () => {
  this.immediatelyOpacity = 0;
  this.immediatelyScale = { x: 6, y: 6 };
})
animateTo({ duration: this.ANIMATION_DURATION, iterations: -1, curve: Curve.EaseInOut, delay: 200 }, () => {
  this.delayOpacity = 0;
  this.delayScale = { x: 6, y: 6 };
})

高性能知识点

本例使用了系统提供的动画接口,降低了系统负载,提升动画帧率。

工程结构&模块类型

// TODO: 知识点:用一个持续时间为0的闭包函数修改所有的变量去打断动画
animateTo({ duration: 0 }, () => {
  this.immediatelyOpacity = 0.8;
  this.delayOpacity = 0.8;
  this.immediatelyScale = { x: 1, y: 1 };
  this.delayScale = { x: 1, y: 1 };
})

模块依赖

   waterriples                                      // har包
   |---WaterRipples.ets                             // 水波纹效果实现页面

不涉及。

参考资料

@显式动画(animateTo)

写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing

    标签:水波纹,动画,识曲,知识点,听歌,animateTo,iterations,duration
    From: https://www.cnblogs.com/HarmonyOSNext/p/18153481

相关文章

  • 在线听歌
    一、对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点(至少3条)。墨刀、Axure和Mockplus都是常用的原型设计工具,它们各有特点,适用于不同的场景和需求。以下是它们的适用领域和优缺点的对比分析:1.墨刀(MockingBot):适用领域:墨刀适用于快速原型设计、界面交互演......
  • 实验一原型设计——在线听歌App
    一、原型设计工具的各自的适用领域及优缺点:1、墨刀:适用领域:交互设计:墨刀提供了丰富的交互组件和动画效果,能够快速创建具有交互功能的原型。移动应用原型设计:墨刀专注于移动应用的原型设计,支持各种常见移动设备的屏幕尺寸和分辨率。用户测试和反馈收集:墨刀支持在线分享原型,轻......
  • 实验一原型设计-在线听歌
    一、对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点。1、墨刀:适用领域:常用于移动应用、网页设计等领域,适合快速搭建原型,进行简单的交互设计。优点:具有简洁直观的界面,易于学习和使用;可在线共享和协作,方便团队成员协同工作;支持实时预览和演示。缺点:对于......
  • 实验一:原型设计-网易云在线听歌app
    一、原型设计工具的各自的适用领域及优缺点(一)、Axure的优缺点1.主要优点Axure作为老牌的原型图工具,功能最齐全,交互最多样,基本任何想要的效果都可以实现,尤其在制作PC端原型图上有优势。2.主要缺点Axure缺点同样也相当明显,Axure的动态面板、中继器等功能都是强大的,但是不容易......
  • 实验一原型设计——网抑云在线听歌APP
    1、对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点(至少3条)。(1)墨刀(MockingBot):适用领域:墨刀适合初级到中级的原型设计者,特别适用于快速设计简单的界面原型,可用于移动应用和网页设计。优点:界面简洁,易于上手,对于不熟悉专业设计软件的用户友好。支持在线......
  • 实验一:在线听歌APP原型设计
    一、原型设计工具的各自的适用领域及优缺点墨刀:适用领域:交互设计:墨刀提供了丰富的交互组件和动画效果,能够快速创建具有交互功能的原型。移动应用原型设计:墨刀专注于移动应用的原型设计,支持各种常见移动设备的屏幕尺寸和分辨率。用户测试和反馈收集:墨刀支持在线分享原型,轻......
  • 在线听歌
    实验一:在线听歌APP原型设计一、实验题目:原型设计二、实验目的:掌握产品原型设计方法和相应工具使用。三、实验要求1.对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点,具体内容如下:(1)适用领域:墨刀墨刀是一款打通产设研团队,实现原型,设计,流程,思维导图一......
  • 在线听歌-原型设计
    一、墨刀、Axure、Mockplus原型设计工具的对比分析(1)对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点1、优点:墨刀:(1)墨刀拥有PC端、手机端、网页版,可以随时随地进行产品原型设计。(2)墨刀控件的拖拉、大小的调整,都会自然去匹配相应母版的大小,无需去担心有多......
  • 听歌APP
    一.墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点的分析1.墨刀:适用领域:适合快速创建移动应用原型,尤其在UI设计方面表现出色。尤其适合初创项目或需要快速验证想法的场景。-使用情况:项目时间紧张,需要快速构建原型;团队成员对原型设计工具的掌握程度不高。优点......
  • 2023 年听歌年终总结 + 个人排名
    随着圣诞歌曲逐渐在榜单上露面,伴着驯鹿踏雪而来的声音和隐约的牛蹄声,这一年的听歌时间也宣告结束啦。Billboard年榜也释出了,首先当然要恭喜MorganWallen拿下年冠+九张单曲进年榜的无争议碾压。但有些我很喜欢的单曲和专辑没有在榜单上展现自己的实力(比如说扎克布莱恩的心绞痛......