硬汉嵌入式论坛

 找回密码
 立即注册
查看: 656|回复: 10
收起左侧

[LVGL] LVGL-8.4动态背景图(动态壁纸)

[复制链接]

12

主题

41

回帖

77

积分

初级会员

积分
77
发表于 2025-5-14 13:34:14 | 显示全部楼层 |阅读模式
lvgl-gif.gif

硬件平台:正点原子-阿波罗
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原图
background_image_99.gif
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117517
QQ
发表于 2025-5-14 15:13:05 | 显示全部楼层
谢谢楼主分享,从效果来看有点卡顿
回复

使用道具 举报

12

主题

41

回帖

77

积分

初级会员

积分
77
 楼主| 发表于 2025-5-14 15:35:04 | 显示全部楼层
eric2013 发表于 2025-5-14 15:13
谢谢楼主分享,从效果来看有点卡顿

是的,GIF是一边解码一边从SD加载的,其实SDRAM够大,可以直接把gif整个文件加载到sdram,然后再解码
回复

使用道具 举报

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
发表于 2025-5-14 17:25:10 | 显示全部楼层
jasonZJR 发表于 2025-5-14 15:35
是的,GIF是一边解码一边从SD加载的,其实SDRAM够大,可以直接把gif整个文件加载到sdram,然后再解码

这 牛x 呀, 我的板子 sdram 够大,后续有空了也 捣鼓一下看看

其实我个人貌似赶脚 lvgl 挺好用的,当然这个得 gui guider 或其他的 上位机配合才行  
回复

使用道具 举报

12

主题

41

回帖

77

积分

初级会员

积分
77
 楼主| 发表于 2025-5-15 08:52:07 | 显示全部楼层
hpdell 发表于 2025-5-14 17:25
这 牛x 呀, 我的板子 sdram 够大,后续有空了也 捣鼓一下看看

其实我个人貌似赶脚 lvgl 挺好用的,当 ...

我也觉得lvgl好用,扁平化UI风格,非常符合当下审美,各种系统api也很有规律性,不知道的功能可以猜出来
回复

使用道具 举报

11

主题

704

回帖

737

积分

金牌会员

积分
737
发表于 2025-5-15 09:09:02 | 显示全部楼层
LVGL例程配色看起来高端点。
回复

使用道具 举报

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
发表于 2025-5-15 09:25:30 | 显示全部楼层
jasonZJR 发表于 2025-5-15 08:52
我也觉得lvgl好用,扁平化UI风格,非常符合当下审美,各种系统api也很有规律性,不知道的功能可以猜出来

是的,有很多控件可以先使用 guider 初步配置一下后移植到其他的地方,可以任意的移植,没有那么多的条条框框限制,而且关键的是只要 lvgl 底层驱动移植好了,工作是非常稳定的,基本不会出现卡死的情况

回复

使用道具 举报

12

主题

41

回帖

77

积分

初级会员

积分
77
 楼主| 发表于 2025-5-15 11:23:49 | 显示全部楼层
hqgboy 发表于 2025-5-15 09:09
LVGL例程配色看起来高端点。

配色倒是其次,我觉得其他GUI也可以改变颜色,可能只是手动稍微麻烦一些。倒是lvgl的扁平化风格我很喜欢,对比emwin6,哪些控制太丑了,而且我没研究明白,emwin的列表只能拖拽滚动条,不能直接滑动列表
回复

使用道具 举报

12

主题

41

回帖

77

积分

初级会员

积分
77
 楼主| 发表于 2025-5-15 11:24:54 | 显示全部楼层
hpdell 发表于 2025-5-15 09:25
是的,有很多控件可以先使用 guider 初步配置一下后移植到其他的地方,可以任意的移植,没有那么多的条条 ...

我只试过freertos+lvgl,播放mp3和wav一晚上,没有死机的情况,也没有花屏什么的
回复

使用道具 举报

11

主题

704

回帖

737

积分

金牌会员

积分
737
发表于 2025-5-15 13:55:00 | 显示全部楼层
jasonZJR 发表于 2025-5-15 11:23
配色倒是其次,我觉得其他GUI也可以改变颜色,可能只是手动稍微麻烦一些。倒是lvgl的扁平化风格我很喜欢 ...

emwin配色也可以改。最新的GUIBUILDER.
回复

使用道具 举报

12

主题

41

回帖

77

积分

初级会员

积分
77
 楼主| 发表于 2025-5-15 15:00:18 | 显示全部楼层
hqgboy 发表于 2025-5-15 13:55
emwin配色也可以改。最新的GUIBUILDER.

不喜欢emwin的ui风格,感觉emwin有些设计理念有点过时
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 09:32 , Processed in 0.044574 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表