目录
动画就是对一组图像数组以固定的时间间隔显示。
lv_obj_t *animimg = lv_animimg_create(lv_scr_act());
1. 设置动画源
void lv_animimg_set_src(lv_obj_t * obj, lv_img_dsc_t * dsc[], uint8_t num)
dsc是图像源数组,类型说明动画必须是图像结构体指针,不能是文件,注意,这个数组必须是static或全局的,否则显示会闪,num是图像个数。
static const lv_img_dsc_t* dsc[] = {&imgFan, &imgFan1, &imgFan2};
lv_animimg_set_src(animimg, (lv_img_dsc_t**)dsc, 3);
2. 设置间隔时间
void lv_animimg_set_duration(lv_obj_t * img, uint32_t duration);
duration的单位是ms。
lv_animimg_set_duration(animimg, 200);
3. 设置重复次数
void lv_animimg_set_repeat_count(lv_obj_t * img, uint16_t count);
count设置为LV_ANIM_REPEAT_INFINITE时表示一直循环显示。
lv_animimg_set_repeat_count(animimg, LV_ANIM_REPEAT_INFINITE);
4. 启动动画
void lv_animimg_start(lv_obj_t * obj);
启动动画前可以设置样式之类的,比如指定图像显示的位置等。
lv_obj_align(animimg, LV_ALIGN_CENTER, 0, 0);
lv_animimg_start(animimg);
LVGL的动画不是阻塞式的。