LVGL布局方式LVGL的布局上一节介绍了如何在LVGL中创建控件。如果在创建控件时不给控件安排布局,那么控件默认会被放在父容器的左上角。可以使用lv_obj_set_pos(obj,x,y)调整一个控件的位置(或者使用类似的函数单独调整一个方向的坐标),将它放在相对父容器左上角的合适位置。不过这种布局方式非常死板,因为绝对坐标一旦设定就不能自动调整;而且当控件数量较多时,也很难确定合适的坐标值。上一节介绍过,可以使用lv_obj_align(obj,align,x_ofs,y_ofs)设置一个控件相对父容器的对齐,并用以下图片展示所有的对齐方式:从图片中可以看到,控件之间不仅可以内对齐,也可
LVGL布局方式LVGL的布局上一节介绍了如何在LVGL中创建控件。如果在创建控件时不给控件安排布局,那么控件默认会被放在父容器的左上角。可以使用lv_obj_set_pos(obj,x,y)调整一个控件的位置(或者使用类似的函数单独调整一个方向的坐标),将它放在相对父容器左上角的合适位置。不过这种布局方式非常死板,因为绝对坐标一旦设定就不能自动调整;而且当控件数量较多时,也很难确定合适的坐标值。上一节介绍过,可以使用lv_obj_align(obj,align,x_ofs,y_ofs)设置一个控件相对父容器的对齐,并用以下图片展示所有的对齐方式:从图片中可以看到,控件之间不仅可以内对齐,也可
LVGL本质上是一个GUI库,它包含大量的控件(widget),即按钮、标签、滑块、菜单栏这种具有一定人机交互特征的组合图形。LVGL在设计时,采用了一定面向对象编程的设计思路,有效降低了代码编写的难度。LVGL和大多数GUI库的工作方式都是类似的,其代码编写的基础思路为:创建GUI根窗体对象在窗体上绘制各种控件为控件编写响应函数函数在主事件循环中等待用户触发事件响应如果之前有GUI库的使用经验的话,应该可以比较容易明白LVGL代码的编写思路。标签标签(label)应该是GUI最简单也是最基础的控件之一。标签的作用就是显示一小段说明文字。接下来通过介绍标签来介绍LVGL控件的创建、布局与设置属
LVGL本质上是一个GUI库,它包含大量的控件(widget),即按钮、标签、滑块、菜单栏这种具有一定人机交互特征的组合图形。LVGL在设计时,采用了一定面向对象编程的设计思路,有效降低了代码编写的难度。LVGL和大多数GUI库的工作方式都是类似的,其代码编写的基础思路为:创建GUI根窗体对象在窗体上绘制各种控件为控件编写响应函数函数在主事件循环中等待用户触发事件响应如果之前有GUI库的使用经验的话,应该可以比较容易明白LVGL代码的编写思路。标签标签(label)应该是GUI最简单也是最基础的控件之一。标签的作用就是显示一小段说明文字。接下来通过介绍标签来介绍LVGL控件的创建、布局与设置属
LVGL样式LVGL样式概述创建样式在LVGL中,样式都是以对象的方式存在,一个对象可以描述一种样式。每个控件都可以独立添加样式,创建的样式之间互不影响。可以使用lv_style_t类型创建一个样式并初始化:staticlv_style_tstyle;lv_style_init(&style);样式是延迟渲染的,因此需要使用static存储类别说明符或将其声明为全局变量。样式是多方面的,不仅包括颜色和形状,还包括边距、边框,甚至动画变换效果等细节。LVGL中的样式从CSS中吸取了很多灵感,因此对样式的操作都类似CSS接下来,可以对得到的样式对象设置一些样式规则:/*...createandin
LVGL样式LVGL样式概述创建样式在LVGL中,样式都是以对象的方式存在,一个对象可以描述一种样式。每个控件都可以独立添加样式,创建的样式之间互不影响。可以使用lv_style_t类型创建一个样式并初始化:staticlv_style_tstyle;lv_style_init(&style);样式是延迟渲染的,因此需要使用static存储类别说明符或将其声明为全局变量。样式是多方面的,不仅包括颜色和形状,还包括边距、边框,甚至动画变换效果等细节。LVGL中的样式从CSS中吸取了很多灵感,因此对样式的操作都类似CSS接下来,可以对得到的样式对象设置一些样式规则:/*...createandin
LVGL库移植STM32LVGL库简介LVGL(LightandVersatileGraphicsLibrary)是一个免费、开源的嵌入式图形库,可以创建丰富、美观的界面,具有许多可以自定义样式的控件,支持按键或触摸响应,支持中文字符,并且内存占用较低。可以在https://lvgl.io/demos使用网页端体验LVGL的动态效果,再决定是否需要使用LVGL。LVGL使用C语言编写,可以用在树莓派、ESP32、STM32等单片机上,并支持各种中大型屏幕(只需要提供屏幕的绘图API即可)。LVGL的官网地址为:https://lvgl.io/,GitHub地址为:https://github.
LVGL库移植STM32LVGL库简介LVGL(LightandVersatileGraphicsLibrary)是一个免费、开源的嵌入式图形库,可以创建丰富、美观的界面,具有许多可以自定义样式的控件,支持按键或触摸响应,支持中文字符,并且内存占用较低。可以在https://lvgl.io/demos使用网页端体验LVGL的动态效果,再决定是否需要使用LVGL。LVGL使用C语言编写,可以用在树莓派、ESP32、STM32等单片机上,并支持各种中大型屏幕(只需要提供屏幕的绘图API即可)。LVGL的官网地址为:https://lvgl.io/,GitHub地址为:https://github.
此笔记主要是记录在LVGL中使用图片的几种方式,以及使用过程中遇到的问题。最近在ARMlinux中使用LVGL时,发现加载图片变得很卡,一开始还好,当连续加载的图片变多后,特别是动画的过程中直接无法看,折腾了一会直接懵逼了,尝试了各种办法都没搞定,后来发现是我没有好好看文档,导致的问题,这里特意记录一下。一、基本信息lvgl版本:8.3使用环境:linux屏幕大小:480*800二、lvgl外部文件使用为了方便后面的学习,这里先记录一下在linux中通过lvgl使用外部文件的方式,有需要的可以参考一下,好像其他博主很少特意记录这个问题,我也折腾了好一会打开外部文件使用lvgl在8.0后就已经集
此笔记主要是记录在LVGL中使用图片的几种方式,以及使用过程中遇到的问题。最近在ARMlinux中使用LVGL时,发现加载图片变得很卡,一开始还好,当连续加载的图片变多后,特别是动画的过程中直接无法看,折腾了一会直接懵逼了,尝试了各种办法都没搞定,后来发现是我没有好好看文档,导致的问题,这里特意记录一下。一、基本信息lvgl版本:8.3使用环境:linux屏幕大小:480*800二、lvgl外部文件使用为了方便后面的学习,这里先记录一下在linux中通过lvgl使用外部文件的方式,有需要的可以参考一下,好像其他博主很少特意记录这个问题,我也折腾了好一会打开外部文件使用lvgl在8.0后就已经集