ESP32开发路程LVGL篇(四)——常用函数介绍,屏幕、标签


本文使用的LVGL版本为7.x
参考:
很不错的LVGL学习笔记

屏幕

lv_scr_act

这个函数是用来获取当前活动的屏幕对象,默认情况下,代表最后创建的(唯一的)显示。

	lv_obj_t *scr = lv_scr_act();

清屏

利用 lv_obj_clean 清空屏幕对象。

	lv_obj_clean(lv_scr_act());

设置屏幕背景色

lv_obj_set_style_local_bg_color 可以用来设置对象的颜色

  • obj:要设置背景色的对象指针。
  • part:指定对象的哪个部分要设置背景色。对于屏幕对象,使用 LV_OBJ_PART_MAIN 表示主要部分。
  • state:指定对象的状态。使用 LV_STATE_DEFAULT 表示默认状态。
  • color:要设置的背景色。可以使用预定义的颜色常量,例如 LV_COLOR_RED,或使用 RGB 值来表示颜色。
lv_obj_set_style_local_bg_color(lv_scr_act(), LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED);

标签

默认的字体设置是 UTF8

创建标签

    lv_obj_t *label1 = lv_label_create(lv_scr_act(), NULL);

长文本模式

  • LV_LABEL_LONG_EXPAND:扩展对象的大小以适应文本大小。文本超出对象边界时,对象的大小将自动扩展以容纳整个文本。这将导致对象的大小根据文本的长度而变化。
  • LV_LABEL_LONG_BREAK:保持对象的宽度,但是将过长的行进行自动换行,并且根据需要扩展对象的高度以容纳所有文本内容。
  • LV_LABEL_LONG_DOT:保持对象的大小,并在文本过长时在末尾添加省略号(…)来指示被截断的文本内容。
  • LV_LABEL_LONG_SCROLL:保持对象的大小,将文本内容进行滚动显示。文本从左向右滚动,直到完整显示文本内容,然后重新开始滚动。这会创建一个滚动文本的效果。
  • LV_LABEL_LONG_SCROLL_CIRC:保持对象的大小,将文本内容以循环滚动的方式显示。文本从左向右滚动,直到完整显示文本内容,然后重新开始滚动。这将创建一个循环滚动的文本效果。
  • LV_LABEL_LONG_CROP:保持对象的大小,并将超出对象边界的文本进行裁剪,只显示在对象范围内的文本内容。

长文本模式经常结合设置文本宽度一起使用,超出宽度自动换行:

    lv_label_set_long_mode(label1, LV_LABEL_LONG_BREAK);
    lv_obj_set_width(label1, 160 - 2);

对齐样式

在这里插入图片描述
lv_obj_align() 用于将对象对齐到父对象或屏幕的特定位置。

  • obj:要对齐的对象指针,可以是标签对象。
  • base:基准对象指针,用于确定对齐的参考坐标系。可以为 NULL 表示对齐到屏幕。在这里,如果第二个参数为 NULL,则表示将对象对齐到屏幕。
  • align:对齐方式,指定了对象在基准对象或屏幕上的对齐位置。
  • x_ofs:水平偏移量,即相对于对齐位置的水平偏移量。可以是正值(向右偏移)或负值(向左偏移)。
  • y_ofs:垂直偏移量,即相对于对齐位置的垂直偏移量。可以是正值(向下偏移)或负值(向上偏移)
    lv_obj_align(label1, NULL, LV_ALIGN_IN_TOP_LEFT, 1, 1);

添加文本

示例:

lv_label_set_text(label1, "This is a test! The label has set long break mode.");    // 设置文本内容

如果想后期对文本内容进行增添,可将代码优化成如下所示:

char text_buffer[100];
strcpy(text_buffer, lv_label_get_text(label1));
lv_label_set_text(label1, strcat(text_buffer, "\nis it enough?"));    // 设置文本内容

文本样式

  • 修改字体大小
    • 先在 menuconfig 的 Enable built-in fonts 里面使能你想要的字体,这里我勾选了 14 20 24,其中LVGL 默认的字体是 LV_FONT_MONTSERRAT_14
    • 通过相关函数修改字体的大小,由于我的 LVGL 版本问题,所以用的是这个函数,仅作参考
lv_font_t *new_font = &lv_font_montserrat_20;
_lv_style_list_set_local_ptr(&label1->style_list, LV_STYLE_TEXT_FONT, new_font);
  • 修改字体颜色
static lv_style_t label1_style;
lv_style_init(&label1_style);
_lv_style_set_color(&label1_style, LV_STYLE_TEXT_COLOR, LV_COLOR_MAKE(255, 255, 0));   // 蓝 绿 红 顺序
lv_obj_add_style(label1, LV_OBJ_PART_MAIN, &label1_style);
### 回答1: ESP32 移植 LVGL 需要使用 ESP-IDF 的支持,它提供了 ESP32 平台基本功能的驱动程序和配置文件。你可以按照 ESP-IDF 的官方文档,使用 ESP-IDF 的平台支持进行 LVGL 移植。 ### 回答2: ESP32是一款强大的微控制器,支持运行各种应用程序。LVGL是一种开源的GUI库,可以轻松实现图形化界面。下面我将介绍如何在ESP32上移植LVGL。 首先,我们需要下载LVGL库的源代码。可以从官方网站或者GitHub上下载最新版本的LVGL库。 接下来,我们需要用到Arduino开发环境来编译和烧录代码。确保你已经安装了最新版本的Arduino开发环境,并且已经将ESP32开发板支持库安装。 然后,将LVGL源代码复制到你的Arduino项目文件夹中的一个子文件夹中。然后打开Arduino开发环境,找到你的项目文件夹并打开LVGL源代码文件夹。 在LVGL源代码文件夹中找到`lv_conf_template.h`文件,并将其复制为`lv_conf.h`文件。然后,打开`lv_conf.h`文件并根据你的需求进行配置。在配置文件中,你可以设置屏幕大小、颜色深度、字体等。 然后,在Arduino开发环境中打开ESP32的示例程序。找到一个空闲的示例程序,例如“Blink”示例程序,并将其复制为一个新的文件夹。 将LVGL源代码文件夹中的`lvgl`文件夹复制到ESP32示例程序文件夹中。 打开ESP32示例程序文件夹中的`platformio.ini`文件,并取消注释以下两行代码: ``` lib_ignore = ESP32_BLE_Arduino # lib_deps = ``` 然后,在`lib_deps =`后面添加以下代码: ``` ${env.LIBS_DIR}/lvgl ``` 保存并退出`platformio.ini`文件。 最后,编译和烧录ESP32示例程序。在Arduino开发环境中,选择正确的端口和开发板,并点击“编译并上传”按钮。完成后,你的ESP32就成功移植了LVGL,并可以使用LVGL库创建图形化界面了。 总之,移植LVGLESP32可以通过将LVGL源代码复制到你的项目文件夹中,配置LVGL并将其添加到ESP32示例程序中来实现。这样,你就可以在ESP32上轻松创建图形化界面了。 ### 回答3: ESP32是一款功能强大的微控制器,LVGL是一种用于嵌入式系统的开源图形库。要将LVGL移植到ESP32上,可以按照以下步骤进行操作: 1. 下载LVGL软件包:在LVGL官方网站上下载最新版本的LVGL软件包,并解压缩到ESP32开发环境的工作目录中。 2. 配置开发环境:打开ESP32开发环境(如ESP-IDF或Arduino IDE),创建新的项目或打开现有的项目。 3. 配置LVGL:在ESP32的项目文件中,找到并打开LVGL的配置文件(如lv_conf.h)。根据项目的需求,设置LVGL的配置选项,如分辨率、颜色深度、绘制驱动等。 4. 添加LVGL的源代码:将LVGL的源代码文件添加到ESP32项目的源文件目录中。可以复制整个LVGL文件夹,或者将相关文件手动复制到项目目录。 5. 添加驱动程序:根据项目的显示设备,选择并添加相关的驱动程序。LVGL支持多种显示设备和操作系统接口,如SPI、I2C、UART等。 6. 初始化LVGL:在ESP32的程序中,添加LVGL的初始化函数。该函数负责初始化LVGL图形库,并配置所需的驱动程序。 7. 编写应用程序:根据项目的需求,在ESP32的程序中编写LVGL应用程序。可以使用LVGL提供的各种图形元素和功能,如按钮、标签、文本框、进度条等。 8. 编译和烧录:将ESP32与计算机连接,并进行编译和烧录操作。确保所有的依赖文件和驱动程序都正确配置,并且LVGL的源代码能够正确编译。 9. 调试和优化:在ESP32上运行LVGL应用程序,并进行调试和优化。可以使用串口输出或者调试工具来查找和修复可能出现的问题。 10. 测试和部署:在完成调试和优化后,进行系统测试以及部署到实际项目中。 以上是将LVGL移植到ESP32的一般步骤,具体的细节和操作方式可能会因项目的需求和开发环境而有所不同。希望这些简要的说明可以帮助您成功地将LVGL移植到ESP32上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值