zl程序教程

您现在的位置是:首页 >  其它

当前栏目

LVGL V8之Playback animation

animation V8 LVGL
2023-09-14 09:06:41 时间

创建动画

  • 动画播放处理回调函数
 static void anim_x_cb(void* var, int32_t v)
{
    lv_obj_set_x(var, v); //设置动画对象x坐标
}
static void anim_size_cb(void* var, int32_t v)
{
    lv_obj_set_size(var, v, v); //设置动画对象大小尺寸
}
  • 创建对象播放动画处理
static void lv_example_anim_2(void)
{
    lv_obj_t* obj = lv_obj_create(lv_scr_act()); //创建obj对象
    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, 50); //设置动画start,end初值
    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_ease_in_out);//设置动画path处理方式
    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, 240); //设置start,end初值
    lv_anim_start(&a);  //开始位置动画播放
}

调用lv_example_anim_2运行效果

在这里插入图片描述

  • 修改位置动画的end值
lv_anim_set_values(&a, 10, LV_HOR_RES);
  • 效果图
    在这里插入图片描述
  • 修改size动画的end值
 lv_anim_set_values(&a, 10, 150);
  • 效果图
    在这里插入图片描述