样式
样式
样式是一个
lv_style_t
变量,它可以保存边框宽度、文本颜色等对象的属性尽管可以用简单的方法Lv_set_xxx()
直接修改对象的属性,但是用过样式来该的话可以比较方便的修改更多对象的样式。可以将样式分配给对象以更改其外观。在赋值过程中,可以指定目标部分(和目标状态
LVGL对象包括如下状态且可以通过|
来组合
数字代表了这种状态的优先级,最后选择优先级最高的来显示
1.初始化样式和设置/获取属性
样式存储在 lv_style_t
变量中。样式变量应该是 static
、全局或动态分配的。 换句话说,它们不能是函数中的局部变量,当函数结束时它们会被销毁。 在使用样式之前,它应该用 lv_style_init(&my_style)
进行初始化。 初始化后,可以设置或添加样式属性。lv_style_set_<property_name>(&style, <value>);
1 | static lv_style_t style_btn_red; |
删除属性:lv_style_remove_prop(&style, LV_STYLE_BG_COLOR);
获取属性:
1 | lv_style_value_t v; |
重置样式:lv_style_reset(&style);
2.向对象应用样式
lv_obj_add_style(obj, &style, <selector>)
。 <selector>
是应添加样式的部分和状态的值,例如:
LV_PART_MAIN | LV_STATE_DEFAULT
LV_STATE_PRESSED
:按下状态的主要部分。LV_PART_MAIN
可以省略LV_PART_SCROLLBAR
:默认状态下的滚动条部分。LV_STATE_DEFAULT
可以省略。LV_PART_SCROLLBAR | LV_STATE_SCROLLED
:对象滚动时的滚动条部分0
与LV_PART_MAIN | 相同LV_STATE_DEFAULT
。LV_PART_INDICATOR | LV_STATE_PRESSED | LV_STATE_CHECKED
同时按下和检查对象时的指示器部分。
1 | lv_obj_add_style(btn, &style_btn, 0); /*Default button style*/ |
3.样式中一些常用变量的设置
(1)字体
1 | void lv_style_set_text_font(lv_style_t * style, |
字体具有 (每像素位数) 属性。它显示了使用多少位来描述字体中的像素。为像素存储的值决定了像素的不透明度。 这样,使用更高的 bpp,字母的边缘可以更平滑。可能的 bpp 值为 1、2、4 和 8(值越高表示质量越好)。
bpp 还会影响存储字体所需的内存大小。例如,bpp = 4 使字体比 bpp = 1 大近 4 倍。
给对象添加字体:
lv_label_set_text(label1, text);
LVGL中有些宏定义表示一些特殊字符,可以直接在text处使用,不需要加逗号之类的,如lv_label_set_text(label, LV_SYMBOL_OK"Drag me");