- 任务回调函数
void line_meter_task(lv_task_t* t) { static uint8_t progress; lv_obj_t* lmeter = t->user_data; progress += 10; if (progress == 100) { progress = 0; } lv_lmeter_set_value(lmeter, progress); }
- line meter进度实现
void line_meter_demo(void) { /*Create a style for the line meter*/ static lv_style_t style_lmeter; lv_style_copy(&style_lmeter, &lv_style_pretty_color); style_lmeter.line.width = 4; style_lmeter.line.color = LV_COLOR_RED; style_lmeter.body.main_color = lv_color_hex(0x91bfed); style_lmeter.body.grad_color = lv_color_hex(0x04386c); style_lmeter.body.padding.left = 16; /*Create a line meter*/ lv_obj_t* lmeter; lmeter = lv_lmeter_create(lv_scr_act(), NULL); lv_lmeter_set_range(lmeter, 0, 100); lv_lmeter_set_value(lmeter, 50); lv_lmeter_set_scale(lmeter, 360, 31); lv_lmeter_set_style(lmeter, LV_LMETER_STYLE_MAIN,&style_lmeter); lv_obj_set_size(lmeter, 150, 150); lv_obj_align(lmeter, NULL, LV_ALIGN_CENTER, 0, 0); lv_task_t* t = lv_task_create(line_meter_task, 200, LV_TASK_PRIO_MID, lmeter); lv_task_ready(t); }
- 调用line_meter_demo函数,编译运行