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);