时间线(timeline)
有时候需要同时播放较多动画,此时如果逐个播放的话,需要逐个为动画设计延时,不方便安排。此时,可以使用 LVGL 提供的时间线(timeline)统一安排各个动画。
时间线的创建非常简单。首先,创建一系列动画,但先不调用 lv_anim_start() 让动画开始。
其次,创建一个时间线并将各个动画添加到时间线的某一时刻处:
lv_anim_timeline_t* anim_timeline = lv_anim_timeline_create();
lv_anim_timeline_add(anim_timeline, 0, &anim_axis);
lv_anim_timeline_add(anim_timeline, 100, &anim_obj_01);
lv_anim_timeline_add(anim_timeline, 1100, &anim_obj_02);
lv_anim_timeline_add(anim_timeline, 2100, &anim_obj_03);
lv_anim_timeline_add(anim_timeline, 300, &anim_label_01);
lv_anim_timeline_add(anim_timeline, 1300, &anim_label_02);
lv_anim_timeline_add(anim_timeline, 2300, &anim_label_03);
使用时间线时,无需为动画设计延时,只需要关注动画会在什么时刻播放,延时便会自动计算。
这样就可以创建很复杂的组合动画效果了:
使用时间线可以方便管理所有动画,可以将时间线上包含的所有动画停播、倒放、跳转等。以下列出了一些常用的时间线控制函数:
如果需要倒放,在设置了播放方向后还需要调用 lv_anim_timeline_start()
重新播放,并且会从当前位置倒放。