最近在做一个项目,由于界面美观及优化需要,要对label中的text文本作居中显示且颜色变化处理,在多次模拟实验尝试下,最终实现,现贴上相关代码,以作记录。
lv_obj_t *paraSetlab0 = lv_label_create(contLEV3,NULL);
lv_obj_set_style(paraSetlab0,&stylemonitor_headico);
lv_label_set_long_mode(paraSetlab0, LV_LABEL_LONG_BREAK);
lv_obj_set_size(paraSetlab0, 320, 23); //设置label大小,注意放在长文本模式后
lv_label_set_align(paraSetlab0, LV_LABEL_ALIGN_CENTER);
lv_label_set_recolor(paraSetlab0,true);/* 允许文字重新着色 */
lv_label_set_text(paraSetlab0,"#ff0000 \uF21E##000000 Monitor#");
lv_obj_set_pos(paraSetlab0,0,0); //设置位置,这句很重要
效果如下:
最初一直显示空白,是代码段最后一句函数“lv_obj_set_pos(paraSetlab0,0,0);”一直写成“ lv_obj_align(paraSetlab0,contLEV3,LV_ALIGN_IN_LEFT_MID,0,0);”
至于原因,暂未找到,特此记录。