1 窗口背景介绍
在 LVGL 中,screen 是一个顶层对象,代表你设备上当前显示的整个画面。它相当于一个“全屏容器”,你可以在上面添加按钮、标签、图像、容器等各种界面控件。它的本质就是一个特殊的 lv_obj_t,但它没有父对象(parent == NULL),所以它是显示层级的根节点。
可以创建多个 screen,然后根据需要来进行切换。每个 screen 是独立的,互不影响。只会有一个 screen 是“当前可见的”,通过 lv_scr_load() 或 lv_scr_load_anim() 来切换
2 窗口应用
一切可视内容都是 lv_obj_t 对象,包括按钮、标签、容器、图像等。所有界面元素都以树状结构组织:parent → child → child …
lv_scr_act() 是当前正在显示的“屏幕 screen”对象,你可以创建多个 screen 并进行切换
Screen(屏幕):本质是 lv_obj_create(NULL) 创建的一个顶层对象,代表一整块显示区域。
2.1 基础窗口创建
2.1.1
lv_obj_create() 是 LVGL 中最基础、最常用的函数之一,用于 创建一个新对象(控件)。你可以把它看作是“构建 UI 元素的起点”。
当你使用 lv_obj_create(parent) 时,LVGL 会:
- 为对象分配内存
- 设置默认样式(通常是白底 + 灰边框)
- 将它添加为 parent 的子对象
- 默认开启大小继承(可以修改)
lv_obj_t * lv_obj_create(lv_obj_t * parent);
2.1.2 案例
lv_obj_t *scr = lv_obj_create(NULL); // 新建一个 screen
lv_scr_load(scr); // 显示它
2.2 窗口大小
lv_obj_set_size(obj, width, height); // 设置宽度和高度
lv_obj_set_width(obj, width); // 单独设置宽度
lv_obj_set_height(obj, height); // 单独设置高度
2.3 颜色控制
颜色控制:
lv_color_hex() 自定义颜色值 将你指定的 16 进制 RGB 色值(0xRRGGBB)转换为 lv_color_t 类型
lv_palette_main() LVGL 预置了一套 Material Design 风格的调色板(Palette)lv_palette_main() 或 lv_palette_lighten()、lv_palette_darken() 来取常用主题色。lv_palette_main(LV_PALETTE_BLUE);
透明度控制:它控制某个对象的 背景不透明度,即背景颜色的“透明/半透明/完全透明”程度。
void lv_style_set_bg_opa(lv_style_t * style, lv_opa_t opa);
LV_OPA_TRANSP(完全透明,0)
LV_OPA_50(50% 不透明,127)
LV_OPA_COVER(完全不透明,255)
2.3.1 创建风格
static lv_style_t style