提示:本博客作为学习笔记,有错误的地方希望指正
文章目录
一、文字样式简介
本次主要讲述lvgl的文字样式,Text style样式可以实现一些文字间距,文字行距的设置,以及文字的装饰划线,下划线,删除线,以及文字字体
1.1字体颜色 text_color
设置文本的颜色。
1.2字体透明度 text_opa
设置文本的不透明度。值0,LV_OPA_0或LV_OPA_TRANSP表示完全透明,256,LV_OPA_100或
LV_OPA_COVER表示完全覆盖,其他值或LV_OPA_10、LV_OPA_20等表示半透明。
1.3字体样式 text_font
设置文本的字体(指针)。lv_font_t *
1.4字体列间距 text_letter_space
以像素为单位设置字母空间
1.5字体行间距 text_line_space
以像素为单位设置行距。
1.6字体修饰 text_decor
为文本设置装饰。可能的值为LV_TEXT_DECOR_NONE/UNDERLINE/STRIKETHROUGH。也可以使用 OR-ed 值。
1.7字体颜色 text_align
设置如何对齐文本行。请注意,它不会对齐对象本身,只会对齐对象内部的线条。可能的值为
LV_TEXT_ALIGN_LEFT/CENTER/RIGHT/AUTO。LV_TEXT_ALIGN_AUTO检测文本基本方向并相应地使
用左对齐或右对齐
二、Style img API
用于文字样式的API可以在lv_style_gen.h文件中找到,主要有以下几个API
void lv_style_set_text_color(lv_style_t * style, lv_color_t value); //设置样式文本字颜色
void lv_style_set_text_color_filtered(lv_style_t * style, lv_color_t value);//设置样式文本字颜色过滤色
void lv_style_set_text_opa(lv_style_t * style, lv_opa_t value); //设置样式文本字透明度
void lv_style_set_text_font(lv_style_t * style, const lv_font_t * value); //设置样式文本字字体
void lv_style_set_text_letter_space(lv_style_t * style, lv_coord_t value); //设置样式文本字符间隔
void lv_style_set_text_line_space(lv_style_t * style, lv_coord_t value); //设置样式文本行间距
void lv_style_set_text_decor(lv_style_t * style, lv_text_decor_t value); //设置样式文本装饰划线
三、示例
3.1字体样式基本显示
使用label 来添加文字样式,可以使用 \n 从而实现换行的显示效果,文字的修饰主要有下划线和删除线两种情况。值得注意的是使用不同字体的时候,需要包含字体的路径
LV_FONT_DECLARE(lv_font_montserrat_12)
lv_style_set_text_font(&style,&lv_font_montserrat_12);
/*************************************************
* 函数名称 : lv_Text_style 文字样式设置
* 参 数 : 无
* 函数功能 : 文字样式设置
*************************************************/
void lv_Text_style()
{
static lv_style_t style; //创建样式
lv_style_init(&style); //初始化样式
lv_style_set_radius(&style,5); //设置背景圆角
lv_style_set_bg_opa(&style,LV_OPA_COVER); //设置背景透明度
lv_style_set_bg_color(&style,lv_palette_lighten(LV_PALETTE_GREY,2)); //设置背景颜色
lv_style_set_border_width(&style,2); //设置外框宽度
lv_style_set_border_color(&style,lv_palette_main(LV_PALETTE_BLUE)); //设置外框颜色
lv_style_set_pad_all(&style,10); //设置内边距
lv_style_set_text_color(&style,lv_palette_main(LV_PALETTE_RED)); //设置样式文本字颜色
lv_style_set_text_letter_space(&style,5); //设置样式文本字符间隔
lv_style_set_text_line_space(&style,20); //设置样式文本行间距
lv_style_set_text_decor(&style,LV_TEXT_DECOR_UNDERLINE); //LV_TEXT_DECOR_STRIKETHROUGH Lv文字装饰划线 LV_TEXT_DECOR_UNDERLINE 下划线
lv_obj_t * obj = lv_label_create(lv_scr_act()); //创建文字对象
lv_obj_add_style(obj,&style,0); //将样式添加到文字对象中
lv_label_set_text(obj,"Hello\n" //设置文字
"ESP32");
lv_obj_center(obj); //居中对象
}