更多源码分析请访问:LVGL 源码分析大全
1、前言
在实现项目中,因为横竖屏的关系,需要对其做90度的旋转。配置旋转时发现一些局部刷新控件,旋转后效果不对。
![]() |
|
| 异常图标 | 正常图标 |
2、问题原因
该问题是在配置旋转LV_DISP_ROT_MAX_BUF 时过大,计算旋尺寸时导致数据越界(超出了16位整形的长度)所致。
该计算方法在 src/core/lv_refr.c 中,如下:
lv_coord_t max_row = LV_MIN
本文探讨了在LVGL中遇到的横竖屏旋转问题,问题源于旋转配置导致的数据越界。提供了三种解决方案:直接修改代码、调整配置以及降低LV_DISP_ROT_MAX_BUF值。通过对LVGL源码的分析,详细阐述了每个方案的实施步骤,帮助开发者解决UI旋转的难题。
更多源码分析请访问:LVGL 源码分析大全
在实现项目中,因为横竖屏的关系,需要对其做90度的旋转。配置旋转时发现一些局部刷新控件,旋转后效果不对。
![]() |
|
| 异常图标 | 正常图标 |
该问题是在配置旋转LV_DISP_ROT_MAX_BUF 时过大,计算旋尺寸时导致数据越界(超出了16位整形的长度)所致。
该计算方法在 src/core/lv_refr.c 中,如下:
lv_coord_t max_row = LV_MIN
1万+
4439
9239
9658
1万+

被折叠的 条评论
为什么被折叠?
