HarmonyOS 鸿蒙Next 联动动画实现方式分享

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 联动动画实现方式分享

你是否也想在应用内实现联动动画?举个例子,下拉控制中心时桌面会同步回缩和发生模糊度变化,这种多个UI组件同时发生变化的动画被我称为联动动画。

cke_20164.jpeg

想要实现这种效果其实很容易,首先创建一个@State装饰的变量,例如在我的软件中,我创建了一个叫做playMoveY的变量,用于存储播放页面当前的位置

cke_6683.png

@State装饰器有一个特点,当被装饰的变量发生变化时,会“通知”使用这个变量的UI属性更新,重新计算变量变更后的值。

例如,使用这个变量加上一些算法来控制应用主界面的缩放

cke_17921.png

以及主界面的模糊度

cke_20971.png

还有播放按钮和封面的位置

cke_27681.png

UI组件绑定这个变量后,即可通过算法来根据变量实时计算属性值,做到平滑变化和联动。通过这种方式实现的联动动画相对于属性动画和显式动画而言工作量相对较小

提一嘴,在使用@State装饰器后,可以进一步使用@Watch装饰器,当变量发生变化时,会执行@Watch装饰器内设定的函数,用于实现其它效果。不过需要注意的是,如果变量为复杂的自定义的数据类型,@Watch装饰器可能无法及时监测数据的变更。这一点没有文档依据支撑,而是我在实际开发中遇到的问题,并不代表所有开发环境。

以上就是我分享的动画小窍门,如果对你有所启发,请给个免费的赞吧,谢谢!


更多关于HarmonyOS 鸿蒙Next 联动动画实现方式分享的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next 联动动画实现方式分享的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next联动动画实现方式主要通过以下几种途径:

  1. 动画资源文件:利用动画资源文件(如XML或JSON格式)定义动画属性,包括持续时间、插值器、关键帧等。这些资源文件可在代码中引用,实现复杂的动画效果。

  2. 动画API:鸿蒙系统提供了丰富的动画API,允许开发者在代码中直接创建和控制动画。通过编程方式,可以实现更灵活和动态的动画效果,如动态调整动画速度、方向等。

  3. 动画组合:鸿蒙支持动画的组合使用,即将多个动画效果叠加在一起,形成更复杂的动画序列。这有助于实现复杂的UI交互效果,提升用户体验。

  4. 事件监听与触发:通过监听用户操作或系统事件(如点击、滑动、页面切换等),触发相应的动画效果。这种方式使动画与用户的交互行为紧密关联,增强应用的互动性和趣味性。

  5. 动画过渡:在界面元素变化时(如页面跳转、组件显示/隐藏),使用动画过渡效果,使界面变化更加平滑和自然。

以上方式可根据具体需求进行选择和组合,以实现所需的联动动画效果。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部