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

LVGL v8.1 发布,支持 SDL GPU 加速和性能提升

LVGL v8.1 带来硬件加速 SDL 渲染、第三方库集成、更快的圆形绘制,以及 RT-Thread/ESP32 组件支持。

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

概述#

LVGL v8.1 是一个次要版本,包含了大量修复和丰富的新功能。此次更新增强了性能,扩展了平台支持,并将多个强大的功能直接集成到核心库中。

主要亮点包括:

  • 内置支持基于 SDL 的 GPU 绘制
  • 软件渲染器中更快的圆形绘制
  • 多个第三方库直接合并到 LVGL 中
  • LVGL 作为 RT-Thread 和 ESP32 组件添加

破坏性变更#

破坏性变更

日历控件现在将其标题直接包含在控件结构中。此变更可能需要更新现有的日历实现。

提交: 2e08f80


架构改进#

第三方库集成

小型、广泛使用的第三方库现在直接集成到 LVGL 中,减少了依赖管理开销,提高了开箱即用的功能。


新功能#

显示和渲染#

  • 直接模式绘制:添加对直接模式渲染的支持 #2460
  • 硬件加速 SDL2 渲染:使用 SDL2 的 GPU 加速 #2484
  • 非全屏显示实用程序:支持渲染到显示子区域 #2724、#2583
  • 乘法混合模式:添加 LV_BLEND_MODE_MULTIPLY cc78ef4

平台支持#

  • RT-Thread 集成:完全支持 RT-Thread RTOS,包括设备驱动程序和构建系统 #2660、#2674、#2719
  • ESP32 组件:LVGL 现在可通过 ESP32 组件管理器获取 #2521
  • Win32 文件系统驱动程序:基于 Win32 API 的新文件系统驱动程序 #2701
  • MicroPython 接口目标:改进的 MicroPython CMake 接口 #2529

控件和组件#

  • Rlottie 集成:LVGL-Rlottie 接口作为第三方库添加 #2700
  • 键盘用户自定义模式:添加自定义键盘布局 #2651
  • 键盘按钮弹出框:在按钮矩阵/键盘按下按钮时显示弹出框 #2537
  • 消息框内容区域:向消息框添加自定义内容区域 #2561
  • 消息框改进:除非需要,否则省略标题标签 #2539,添加获取所选按钮索引的函数 #2538
  • 开关动画:改变开关状态时的平滑动画 #2442
  • 数字框增强:支持使用编码器的双向数字步进 #2644,光标定位 #2314
  • 跨度文本改进:缩进支持固定和断行模式的百分比 #2693,缺失的跨度组函数 #2379

对象系统#

  • 快照 API:获取对象的快照 #2353
  • 动画时间轴:用于协调动画的新时间轴 API #2309
  • 对象操作:
    • lv_obj_move_to_index() 和 lv_obj_get_index() #2514
    • lv_obj_swap() 用于交换对象 #2461
    • lv_obj_del_delayed() 用于延迟删除 c6a2e15
    • lv_obj_is_initialized() #2402
    • lv_obj_get_x/y_aligned() 98bc1fe
  • 键盘和编码器滚动:从 v7 页面回移植到 v8 对象 #2390

事件#

  • 子对象生命周期事件:LV_EVENT_CHILD_CREATED 和 LV_EVENT_CHILD_DELETED #2618
  • 屏幕加载事件:
    • LV_EVENT_SCREEN_(UN)LOAD_START 7bae9e3
    • LV_EVENT_SCREEN_LOADED/UNLOADED ee5369e
  • 增强绘制事件:改进 LV_EVENT_DRAW_PART_BEGIN/END 的参数 88c4859
  • 事件回调函数管理:lv_obj_remove_event_cb_with_user_data() 4eddeb3
  • 动画用户数据:处理动画用户数据的接口 #2415
  • 滚动动画访问:将滚动动画传递给 LV_EVENT_SCROLL_BEGIN ca54ecf

配置和内存#

  • 可配置内存缓冲区:使 LV_MEM_BUF_MAX_NUM 可配置 #2747
  • 内存池分配:LV_MEM_POOL_ALLOC 支持 #2458
  • 内存监控:添加 LV_USE_MEM_PERF/MONITOR_POS acd0f4f
  • 可覆盖的日志宏:允许覆盖 LV_LOG_... 宏 17b8a76

其他功能#

  • 画布不透明度:lv_canvas_set_px_opa() b3b3ffc
  • 图像大小属性:添加 img_size 属性 #2284
  • 圆弧高级命中测试:支持 LV_OBJ_FLAG_ADV_HITTEST dfa4f5c
  • RTL 改进:使用 RTL 基础方向时滚动条放置在左侧 906448e
  • 时钟验证:检查是否调用了 lv_tick_inc() aa6641a

性能改进#

圆形绘制重新实现#

圆形绘制算法已完全重新实现,为圆角元素提供了显著更快的渲染速度。

矩形绘制优化#

矩形绘制算法也已重写以获得更好的性能。

其他性能增强#

  • 动画时间轴控制:添加 lv_anim_timeline_stop() #2411
  • 遮罩优化:如果遮罩不影响当前绘制区域,则忽略遮罩 a842791
  • 缓冲区管理:优化双缓冲区 lv_disp_flush_ready() 的等待时机 d0172f1
  • 加法混合:加速加法混合操作 3abe517
  • 循环限制检查:从循环限制检查中移除 lv_obj_get_child_cnt() ebb9ce9

错误修复#

此版本包含了库所有领域超过 200 个错误修复。主要修复类别包括:

渲染和绘制#

  • 修复了各种半径/宽度配置下的边框绘制错误
  • 纠正了渐变绘制和裁剪问题
  • 修复了阴影宽度较大且半径为 0 时的阴影绘制问题
  • 解决了带半径遮罩的图像绘制问题
  • 修复了圆弧、仪表和圆形失效问题
  • 纠正了启用 clip_corner 的矩形绘制

控件#

  • 日历:修复了今天和突出显示日期的计算
  • 图表:修复了光标定位、滚动和指示器绘制
  • 下拉菜单:多个失效和键盘处理修复
  • 标签:修复了 BIDI 处理、斜体字母裁剪和 LONG_DOT 模式崩溃
  • 表格:修复了单元格定位、边框处理和偏移一个错误
  • 文本区域:修复了光标绘制、密码模式字符删除和滚动到光标
  • 跨度:修复了不透明度、溢出、装饰和对齐错误
  • 复选框、开关、滚轮、消息框和许多其他控件修复

对象系统#

  • 修复了布局更新和失效问题
  • 纠正了使用 RTL 基础方向的对象定位
  • 修复了对齐和大小计算问题
  • 解决了滚动处理和滚动条可见性问题
  • 修复了组和焦点管理边缘情况

内存和平台#

  • 修复了显示移除和 PNG/SJPG 解码器中的内存泄漏
  • 纠正了 32 位平台上的内存对齐
  • 修复了文件系统驱动程序查找和错误处理
  • 解决了多个工具链(Keil、IAR、GCC)的编译问题
  • 修复了 RT-Thread、STM32、PXP 和 VGLite 驱动程序问题

BiDi 和国际化#

  • 修复了 BiDi 弱字符处理
  • 纠正了 RTL 下拉列表定位和对象对齐
  • 修复了阿拉伯语元音字符处理
  • 解决了多个控件中的基础方向处理

有关所有 200 多个修复的完整列表,请参阅完整更新日志。


示例#

添加的新示例和改进示例:

  • 图表示例:面积图示例 #2507,带数据间隙的图表 #2565
  • 动画示例:三次贝塞尔演示 #2393,带渐变的文本 462fbcb
  • 复选框示例:单选按钮实现 d089b36
  • 列表示例:lv_example_list_2 #2545
  • MicroPython 示例:添加了各种示例的 MP 版本 #2412、#2347

文档#

广泛的文档更新,包括:

  • 使用 v8 API 变更更新了移植指南
  • 完成了样式属性描述
  • 添加了动画图像控件文档
  • 修复了许多拼写错误并澄清了令人困惑的部分
  • 更新了文件系统、布局和颜色文档
  • 添加了提交消息格式指南
  • 更新了 Arduino 和 MicroPython 集成指南

超过 70 个文档拉取请求和提交,改进了清晰度、修复了损坏的链接并更新了示例。


测试和 CI#

测试基础设施的重大改进:

  • 单元测试:添加了文本处理、圆弧、下拉菜单和复选框控件的测试 #2623、#2617、#2551
  • 测试基础设施:将 Makefile 转换为 CMake #2495,添加了并行测试执行 #2515
  • 代码覆盖率:集成 gcov 和 codecov e35b1d0
  • MicroPython CI:添加了 ESP32、STM32 和 RP2 端口测试 #2629
  • 输入仿真:添加了用于自动化测试的鼠标、键盘和编码器仿真器

迁移说明#

虽然 v8.1 在大多数用例中保持向后兼容性,但有一个破坏性变更:

日历控件:日历标题现在直接嵌入在日历控件中。如果您之前单独访问或自定义标题,则需要更新您的代码。

有关详细的迁移指导,请参阅 v8.1 迁移指南。


开始使用#

更新到 LVGL v8.1:

git clone --branch release/v8.1 https://github.com/lvgl/lvgl.git
bash

或更新您现有的仓库:

git checkout release/v8.1
git pull
bash

对于 platformIO、ESP-IDF、Arduino 或其他包管理器,请将您的依赖项更新到 v8.1.0。

访问文档以探索所有新功能和改进。

关于作者

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

LVGL 创始人

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

认识博客背后的作者们

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

查看作者

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

LVGL

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

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

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