合宙Air724UG LuatOS-Air LVGL API--动画

概念
我们可以设定对象的开始状态和结束状态,随后可以通过动画来实现中间的过渡效果。
动画实际上是通过定期调用带有 value 参数的 animator 函数来实现的。函数原型如下:

func(var, value)
该原型与 LVGL 的大多数设置功能兼容。例如 lvgl.obj_set_x(obj,value) 或 lvgl.obj_set_width(obj,value)

创建动画
要创建动画,必须初始化 lvgl.anim_t,并使用 lvgl.anim_set_…() 函数进行配置。

anim = lvgl.anim_t()
lvgl.anim_set_values(anim, -lvgl.obj_get_height(btn), lvgl.obj_get_y(btn), lvgl.ANIM_PATH_OVERSHOOT)
lvgl.anim_set_time(anim, 300, -2000)
lvgl.anim_set_repeat(anim, 500)
lvgl.anim_set_playback(anim, 500)
lvgl.anim_set_exec_cb(anim, btn, set_y)
lvgl.anim_create(anim)
设置路径
可以设置 动画的路径。在最简单的情况下,它是线性的,这意味着起始值和结束值之间的数值线性变化。路径主要是根据动画的当前状态计算要设置的下一个值的功能。当前,有以下内置路径功能:

lvgl.anim_path_linear – 线性动画
lvgl.anim_path_step – 一步到位
lvgl.anim_path_ease_in – 渐进效果
lvgl.anim_path_ease_out – 渐退效果
lvgl.anim_path_ease_in_out – 渐进和渐退效果
lvgl.anim_path_overshoot – 超出最终值
lvgl.anim_path_bounce – 从最终值反弹一点(就像撞墙一样)
速度与时间
默认情况下,可以设置动画时间。但是,在某些情况下,动画速度更加实用。
lvgl.anim_speed_to_time(speed, start, end) 函数以毫秒为单位计算从给定速度的起始值到结束值所需的时间。速度以单位/秒为单位进行解释。例如, lvgl.anim_speed_to_time(20,0,100) 将给出 5000 毫秒。例如,在 lvgl.obj_set_x 单位为像素的情况下,因此 20 表示20 px/sec 的速度。

删除动画
可以通过提供 animation 指针及其函数来删除动画。

lvgl.anim_del(var,func)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

l531798151

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值