进度条部件(lv_bar)

img

进度条部件组成部分:

  1. 主体(LV_PART_MAIN)
  2. 指示器(LV_PART_INDICATOR)

API函数

  1. 创建进度条部件
lv_obj_t *bar  = lv_bar_create ( parent );
  1. 设置大小、当前值、范围值
lv_obj_set_size(struct _lv_obj_t * obj, lv_coord_t w, lv_coord_t h);    /* 设置大小 */
//anim:是否开启动画
lv_bar_set_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim); /* 设置当前值 */
lv_bar_set_range(lv_obj_t * obj, int32_t min, int32_t max);             /* 设置范围值 */
  1. 设置动画时间
//value:动画时长,单位(ms)
lv_obj_set_style_anim_time(struct _lv_obj_t * obj, uint32_t value, lv_style_selector_t selector);   /* 动画设置必须放在当前值设置之前 */
  1. 设置模式、起始值
lv_bar_set_mode(lv_obj_t * obj, lv_bar_mode_t mode);			                /* 设置模式 */
lv_bar_set_start_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim);	/* 设置起始值 */
enum {
    LV_BAR_MODE_NORMAL,			/* 默认模式 */
    LV_BAR_MODE_SYMMETRICAL,	/* 从零值绘制到当前值(当前值可以小于0) */
    LV_BAR_MODE_RANGE			/* 允许设置起始值,但起始值必须小于当前值 */
};
//注意:在V8.2版本的LVGL中,默认模式也允许设置起始值,但是后续的版本可能会修改。

进度条使用注意事项(V8.2版本):

  1. 当进度条高度大于宽度时,其方向变为垂直。

  2. 动画时间设置需要放在当前值设置之前 ,否则看不到动画效果。

  3. 动画时间指的是旧值刷新到新值的绘图时间,并不是现实中当前值变化所需的时间。

  4. 例程补充函数

//timer_xcb:    定时器事件触发回调函数
//period:       触发周期,单位(ms)
//user_data:    用户传进来的数据,可以填NULL
lv_timer_create(lv_timer_cb_t timer_xcb, uint32_t period, void * user_data);    //初始化定时器