创建动画
- 动画播放处理回调函数
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);
- 效果图