进度条部件(lv_bar)

进度条部件组成部分:
- 主体(LV_PART_MAIN)
- 指示器(LV_PART_INDICATOR)
API函数
- 创建进度条部件
lv_obj_t *bar = lv_bar_create ( parent );
- 设置大小、当前值、范围值
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); /* 设置范围值 */
- 设置动画时间
//value:动画时长,单位(ms)
lv_obj_set_style_anim_time(struct _lv_obj_t * obj, uint32_t value, lv_style_selector_t selector); /* 动画设置必须放在当前值设置之前 */
- 设置模式、起始值
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版本):
-
当进度条高度大于宽度时,其方向变为垂直。
-
动画时间设置需要放在当前值设置之前 ,否则看不到动画效果。
-
动画时间指的是旧值刷新到新值的绘图时间,并不是现实中当前值变化所需的时间。
-
例程补充函数
//timer_xcb: 定时器事件触发回调函数
//period: 触发周期,单位(ms)
//user_data: 用户传进来的数据,可以填NULL
lv_timer_create(lv_timer_cb_t timer_xcb, uint32_t period, void * user_data); //初始化定时器