硬件平台:正点原子-阿波罗
MCU:STM32H743,标准主频-480MHz
LCD:7’ - 1024x600
RTOS:FreeRTOS
GUI:LVGL-8.4
---------------------------------------------------------------------------------
大致流程:
1.设置LVGL背景图:
关键代码:
[C] 纯文本查看 复制代码 lv_style_t style_bg;
lv_img_dsc_t bg_picture;
...
lv_style_init(&style_bg);
lv_style_set_bg_img_src(&style_bg, &bg_picture);
lv_obj_add_style(lv_obj[id_screen], &style_bg, LV_PART_MAIN);
...
2.GIF图片解码:
参考正点原子的GIF解码即可,但注意解码数据放在一个大的缓存里,不是直接显示在屏幕上。
3.将解码的一帧GIF数据绘制到步骤1中的lv_img_dsc_t结构体中去
[C] 纯文本查看 复制代码 lv_obj_t *wallpaper_obj = NULL;
wallpaper_obj = lv_obj_create(NULL);
...
PIC_GIF_Decode(wallpaper_buf);
bg_picture.header.cf = LV_IMG_CF_TRUE_COLOR;
bg_picture.header.always_zero = 0;
bg_picture.header.reserved = 0;
bg_picture.header.w = image_width;
bg_picture.header.h = image_height;
bg_picture.data_size = image_size;
bg_picture.data = wallpaper_buf;
lv_obj_remove_style(wallpaper_obj, &style_bg, LV_PART_MAIN);
lv_style_set_bg_img_src(&style_bg, &bg_picture);
lv_obj_add_style(wallpaper_obj, &style_bg, LV_PART_MAIN);
...
---------------------------------------------------------------------------------
GIF原图
|