试用 LVGL Pro,一套完整的工具包,助您高效构建、测试、分享和交付 UI!
LVGL
版本发布

LVGL v8.2 发布:抽象渲染层和 FFmpeg 支持

LVGL v8.2 引入了用于外部绘图引擎的抽象渲染层、FFmpeg 视频/图像支持、字体回退、渐变抖动和自动化测试功能。

加博尔·基什-瓦莫希加博尔·基什-瓦莫希8 分钟阅读

概述#

LVGL v8.2 带来了重大的架构改进和强大的新功能。此版本专注于可扩展性和多媒体支持,使集成自定义渲染引擎和处理现代媒体格式变得更加容易。

在众多修复和小更新中,以下是 v8.2.0 中最重要的功能:

  • 抽象渲染层,使附加外部绘图引擎更加容易
  • LV_FLAG_OVERFLOW_VISIBLE 标志 - 如果启用,对象的子元素不会被裁剪到父对象的边界内
  • FFmpeg 解码器支持,用于播放视频和打开各种图像格式
  • 字体回退支持,实现无缝的多脚本文本渲染
  • 渐变抖动,在低色深显示器上实现更平滑的渐变效果
  • 猴子测试,用于自动化 UI 压力测试
  • cmsis-pack 支持,适用于 ARM 开发
  • 网格导航(lv_gridnav),用于键盘/遥控器界面
破坏性变更

此版本包含破坏性变更。从 v8.1 升级前请查看下面的完整列表。

提示

NXP 微控制器的 GPU 支持尚未更新到新的绘图架构。详情请参见 issue #3052。


破坏性变更#

  • 文件系统缓存:为 lv_fs_read 添加了缓存选项(#2979)
  • Span 控件:lv_spangroup_get_expand_width() 添加了一个参数(#2968)
  • 绘图架构:渲染器分离允许替换绘图引擎(db53ea9)

架构变更#

为支持模块化和可扩展性而进行的重大结构改进:

  • 独立的软件渲染器,允许替换它(#2803)
  • 合并 lv_demos 到主仓库(5414652)
  • SDL 后端迁移,使用新的后端架构(#2840)
  • 环境支持重组:将 RT-Thread(#3025)、CMake(773d50f)和 Zephyr(4bd1e7e)移至 env_support 文件夹

新功能#

渲染和图形#

  • 抽象绘图层,用于自定义渲染引擎(#2803)
  • 渐变抖动支持,实现更平滑的颜色过渡(#2872)
  • LV_OBJ_FLAG_OVERFLOW_VISIBLE,禁用子元素裁剪(e7ac0e4)
  • 背景绘制回调函数添加到 draw_ctx(#2935)
  • SDL 圆角图像支持(#3012)

多媒体和字体#

  • FFmpeg 视频和图像解码器,用于播放视频和加载各种图像格式(#2805)
  • 字体回退支持,FreeType 新增内存字体加载选项(#2796)
  • FreeType 粗体和斜体支持(#2824)
  • FreeType 内存优化(#2849)

UI 组件#

  • 菜单控件,用于分层导航(#2603)
  • 网格导航(lv_gridnav),用于键盘/遥控器控制(#2911)
  • 滚动条内边距控制,实现更精确的样式设置(4197b2f)
  • 下拉列表持久化,在打开/关闭时保持状态以简化样式设置(9d3134b)

测试和开发#

  • 猴子测试,用于自动化 UI 压力测试(#2885)
  • cmsis-pack 支持,适用于 ARM 开发环境(#2993)
  • MicroPython 示例,用于外部库功能(#2762)

事件和输入#

  • 事件预处理和停止冒泡功能(#3003)
  • 独立的滚动链标志(LV_OBJ_FLAG_SCROLL_CHAIN_HOR 和 LV_OBJ_FLAG_SCROLL_CHAIN_VER)(#2961)
  • LV_OBJ_FLAG_SCROLL_WITH_ARROW,用于方向键滚动(70327bd)
  • lv_obj_get_event_user_data() 辅助函数(53ececc)
  • 缺失的 lv_indev_delete() 函数(#2854)

其他功能#

  • 符号重定义保护,允许自定义 LV_SYMBOL_* 定义(#2973)
  • FPS 统计重置函数(#2832)
  • 显示刷新定时器解耦(85cc84a)
  • Rlottie 动画控制选项(#2857)
  • QRcode 析构函数,替代 lv_qrcode_delete()(318edd8)
  • 中文 README 翻译(#2919)

性能改进#

  • 优化的 SDL 裁剪矩形使用(#2941)
  • 更快的 lv_color_hex() 函数(#2864)

Bug 修复#

此版本包含超过 100 个 bug 修复,涵盖渲染、控件、内存管理和平台支持。主要修复包括:

渲染#

  • 修复渐变对齐和抖动问题(#3036,#3034)
  • 修复画布渲染,强制使用软件绘制(#3045)
  • 修复索引图像绘制(5a0dbcc)
  • 修复背景图像不透明度和裁剪圆角处理(d51aea4)
  • 修复特殊情况下的边框绘制崩溃(075831a)

控件#

  • 修复滚轮文本裁剪(5709528)
  • 修复下拉列表为空时按下崩溃(2392f58)
  • 修复标签点渲染,当高度 > 1 行字体时(4d61f38)
  • 修复开关旋钮尺寸计算(5ec532d)
  • 修复进度条和滑块在短指示器上的阴影绘制(364ca3c)
  • 修复圆弧旋钮失效(345f688)
  • 修复按钮矩阵选中按钮持久化(d47cd1d)

内存管理#

  • 修复表格和图表控件中的内存泄漏(8d52de1)
  • 修复快照内存泄漏(#2970)
  • 修复圆弧在绘制完整圆时的内存泄漏(#2869)
  • 修复绘图上下文内存溢出崩溃(#2882)

平台支持#

  • 修复各种 ESP32 问题(#3007)
  • 修复 RT-Thread 结构和日志(#2912,#2811)
  • 修复 Kconfig 默认值和配置(#3050,#2989)
  • 修复 CMake 构建系统(#2753)
  • 修复 Makefile 编译错误(#2944)
  • 修复使用 make 构建 SDL(43729d1)

核心系统#

  • 修复 lv_deinit/lv_init 序列崩溃(#2910)
  • 修复在事件中删除对象(9810920)
  • 修复特殊情况下的事件发送核心崩溃(#2807)
  • 修复 full_refresh = 1 时的刷新崩溃(#2999)
  • 修复 lv_obj_set_parent() 中的父对象滚动更新(#2965)
  • 修复非 LEFT/TOP 对齐时的 LV_SIZE_CONTENT 计算(9c67642)

文档#

  • 更新演示信息以反映新布局(#3029)
  • 添加 Tasmota 和 Berry 介绍(#2874)
  • 在输入设备文档中添加手势描述(2719862)
  • 添加常量样式描述(28ffae8)
  • 添加 FAQ 部分:"LVGL 无法启动,显示器上没有任何绘制"(0388d92)
  • 更新移植指南,包含更多项目集成细节(6ce7348)
  • 更新文件系统接口描述(285e6b3)
  • 文档中的多处拼写和格式修复

测试和 CI#

  • 添加进度条单元测试(#2845)
  • 添加开关单元测试(#2794)
  • 添加控件和压力演示测试(3bd6ad8)
  • 添加渐变样式测试(da8f345)
  • 初步支持跨架构测试(7008770)
  • 添加代码格式化工作流(a2b555e)
  • 添加 Arduino linter 操作(f79b00c)
  • 切换到 codecov v2(6b84155)

开始使用#

从 GitHub 下载 LVGL v8.2.0 或更新您现有的安装。如果您从 v8.1 升级,请查看文档了解迁移详情。

关于作者

加博尔·基什-瓦莫希
加博尔·基什-瓦莫希

LVGL 创始人

LVGL 的创始人和首席开发者,这是一个被全球数百万设备使用的开源嵌入式图形库。

认识博客背后的作者们

了解那些分享 LVGL 知识的优秀作者们

查看作者

订阅我们的通讯 不错过任何关于 LVGL 的新闻。我们每月最多发送 2 封邮件。

LVGL

LVGL 是最受欢迎的免费开源嵌入式图形库,支持任何 MCU、MPU 和显示类型,助您构建精美的用户界面。

我们还提供 UI 设计、实现和咨询等服务。

© 2026 LVGL。保留所有权利。
YouTubeGitHubLinkedIn