line meter實現進度圈

  • 任務回調函數

    
    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函數,編譯運行

 

發佈了78 篇原創文章 · 獲贊 24 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章