LVGL V8之Gap动画
动画 V8 LVGL Gap
2023-09-14 09:11:17 时间
row动画回调函数
static void row_gap_anim(void* obj, int32_t v)
{
lv_obj_set_style_pad_row(obj, v, 0);
}
column动画回调函数
static void column_gap_anim(void* obj, int32_t v)
{
lv_obj_set_style_pad_column(obj, v, 0);
}
创建3x3按键行列间隔动画效果
static void lv_example_flex_5(void)
{
lv_obj_t* cont = lv_obj_create(lv_scr_act()); //当前活动界面创建obj对象
lv_obj_set_size(cont, 300, 220); // 设置大小
lv_obj_center(cont); // 居中显示
lv_obj_set_flex_flow(cont, LV_FLEX_FLOW_ROW_WRAP); //LV_FLEX_FLOW_ROW_WRAP方式排列
uint32_t i;
for (i = 0; i < 9; i++) {
lv_obj_t* obj = lv_obj_create(cont); //在cont对象上创建obj对象
lv_obj_set_size(obj, 70, LV_SIZE_CONTENT); // 设置大小
lv_obj_t* label = lv_label_create(obj); //在obj对象上创建label
lv_label_set_text_fmt(label, "%d", i); //设置显示内容
lv_obj_center(label); // 居中显示
}
lv_anim_t a;
lv_anim_init(&a); //初时化动画变量
lv_anim_set_var(&a, cont); // 设置动画操作对象
lv_anim_set_values(&a, 0, 10); // 设置动画start,end值
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);// 设置重复次数为无限重复
lv_anim_set_exec_cb(&a, row_gap_anim); // 注册动画执行回调函数
lv_anim_set_time(&a, 500); // 设置动画持续时间
lv_anim_set_playback_time(&a, 500); // 设置动画回播时间
lv_anim_start(&a); // 启动动画
lv_anim_set_exec_cb(&a, column_gap_anim); // 注册动画执行回调函数
lv_anim_set_time(&a, 3000); // 设置动画持续时间
lv_anim_set_playback_time(&a, 3000); // 设置动画回播时间
lv_anim_start(&a); // 启动动画
}
效果图
相关文章
- JS框架_(JQuery.js)动画效果鼠标跟随
- UITableView的headerView展开缩放动画
- 关于动画培养灵感的网站
- UIView动画上
- android gif动画开源框架android-gif-drawable
- ExtJS简单的动画效果2(ext js淡入淡出特效)
- [Android1.5]Android2.0版本以下Activity切换动画效果
- 动画--过渡函数 transition-timing-function
- 微信小程序----scroll-view组件(MUI索引列表)滚动动画
- 220:vue+openlayers 加载动画,采用css的@keyframes方式
- LVGL V8之使用PC文件系统驱动适配lvgl文件系统
- WPF中的动画——(二)From/To/By 动画