static void anim_x_cb(void * var, int32_t v)
{
lv_obj_set_x(var, v); //设置坐标
}
static void anim_size_cb(void * var, int32_t v)
{
lv_obj_set_size(var, v, v); //设置大小
}
/**
* Create a playback animation
*/
void lv_100ask_demo_course_2_1_1(void)
{
lv_obj_t * obj = lv_obj_create(lv_scr_act());
lv_obj_set_style_bg_color(obj, lv_palette_main(LV_PALETTE_RED), 0);
lv_obj_set_style_radius(obj, LV_RADIUS_CIRCLE, 0); //环形
lv_obj_align(obj, LV_ALIGN_LEFT_MID, 10, 0);
lv_anim_t a;
lv_anim_init(&a);
lv_anim_set_var(&a, obj);
lv_anim_set_values(&a, 10, 100); // 动画 图案大小 起始到结束
lv_anim_set_time(&a, 1000); //动画持续时间
lv_anim_set_playback_delay(&a, 100); //演示 延迟
lv_anim_set_playback_time(&a, 300);
lv_anim_set_repeat_delay(&a, 500);
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); //循环 次数
lv_anim_set_path_cb(&a, lv_anim_path_bounce); // 弹起效果
lv_anim_set_exec_cb(&a, anim_size_cb); //动画回调函数 ,大小变化
lv_anim_start(&a); //开始动画
lv_anim_set_exec_cb(&a, anim_x_cb); //位置动画
lv_anim_set_values(&a, 10, 100); //位置 范围
lv_anim_start(&a);
}
13 lvgl动画效果实现
最新推荐文章于 2024-05-22 14:21:11 发布