lvgl函数说明 V6 V7版本对比

1.透明度设置

Version6:

lv_obj_set_opa_scale_enable(labelDesigner, true);
lv_obj_set_opa_scale(imgLogo,LV_OPA_TRANSP);

Version7:
直接调用

lv_obj_set_style_local_opa_scale(btn2, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT,LV_OPA_TRANSP);

也可以调用

opa_scale_anim函数

由于这俩个函数
为了V6 V7兼容 也可以自行添加函数

void lv_obj_set_opa_scale(lv_obj_t * obj, lv_opa_t opa_scale)
{
	lv_obj_set_style_local_opa_scale(obj, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT, opa_scale);
}

2.背景颜色设置方法

Version6:

lv_style.c这个文件内有一个void lv_style_init(void),
通过更改:  lv_style_scr.body.main_color     = LV_COLOR_BLACK;
			lv_style_scr.body.grad_color     = LV_COLOR_BLACK;
可以很简单的改变背景色为黑。

Version7:
由于V7 屏幕默认背景色也为白色 很多时候需要屏幕默认背景色为黑色
由于LVGL开源 可以找到在注册屏幕时
调用lv_disp_drv_register()
中有 disp->bg_color = LV_COLOR_WHITE
更改为disp->bg_color = LV_COLOR_BLACK;
控件则调用下面的函数

lv_obj_set_style_local_bg_color

2.控件相关:

2.1 label

文本重作色:
在这里插入图片描述

我们可以为 label 控件的文本设置不同的颜色, 可以设置文本的某些部分。

lv_label_set_text(label5, "#ff0000 red##00ff00 green##0000ff blue#");
lv_label_set_recolor(label5,true); /* 允许文字重新着色 */

需要用两个#隔开, 第一个#号后面为 RGB 色,后接一个空格后接文本, 然后#号结尾

应用:
可以用于LABEL部分高亮就不需要创建多个LABEL了
就需要用到下面这个函数,此函数不仅可以像printf那样通过格式字符串控制输出文本,同时还能应用重作色功能

void lv_label_set_text_fmt(lv_obj_t *label, const char *fmt, ...)
例:
 const char* fmt[] = 
    {
        "%02d:#FF0000 %02d#:%02d",
    };
lv_label_set_text_fmt(labelTime, fmt[0], Hours, Minutes,Seconds);
//效果是Minutes会红色显示,其他正常显示

样式:
Version6:

	
	static lv_style_t style_label;
    style_label = *lv_label_get_style(labelTitle, LV_LABEL_STYLE_MAIN);
    style_label.text.font = LV_FONT_DEFAULT;
    style_label.text.color = LV_COLOR_WHITE;
    lv_label_set_style(labelTitle, LV_LABEL_STYLE_MAIN, &style_label);

Version7:

	lv_style_init(&style_label);
	lv_style_set_text_color(&style_label, LV_STATE_DEFAULT, LV_COLOR_WHITE);
	lv_style_set_text_font(&style_label, LV_STATE_DEFAULT, LV_FONT_DEFAULT);
	lv_obj_add_style(labelTitle, LV_OBJ_PART_MAIN, &style_label);

版权声明:本文为qq_33552551原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。