1. 介绍
lv_bar 进度条它由背景和指示器俩部分构成,这俩部分的样式都可以被单独设置,然后此进度条会根据它的宽和高的大小来自动决定它是水平进度条还是垂直进度条,可以通过lv_bar_set_range 接口来设置进度条的数值范围,通过lv_bar_set_value 接口来设置一个新的进度值,与此同时可选一个进度变化的动画效果,整体上来看,这个控件的使用还是比较简单的。
2. lv_bar 的 API 接口
2.1 主要数据类型
2.1.1 进度条样式数据类型
enum {
LV_BAR_STYLE_BG,
LV_BAR_STYLE_INDIC,
};
typedef uint8_t lv_bar_style_t;
LV_BAR_STYLE_BG: 背景的样式,默认值为 lv_style_pretty
LV_BAR_STYLE_INDIC: 指示器的样式 , 默认值为lv_style_pretty_color, 它使用style.body.padding 里面的 left, top, right, bottom 等字段来控制与背景边框之间的距离。
2.2 API 接口
2.2.1 创建对象
lv_obj_t * lv_bar_create(lv_obj_t * par, const lv_obj_t * copy);
参数:
par: 父对象
copy: 拷贝的对象,如果无拷贝的话,传 NULL 值;
返回值:
返回创建出来的对象,如果返回 NULL 的话,说明堆空间不够了。
2.2.2 设置进度范围
void lv_bar_set_range(lv_obj_t * bar, int16_t min, int16_t max);
参数:
bar: 进度条对象
min: 最小值
max: 最大值
如果不设置的话,则默认范围为[0,100]。
2.2.3 设置新的进度值
void lv_bar_set_value(lv_obj_t * bar, int16_t value, lv_anim_enable_t anim);
参数:
bar: 进度条对象
value: 新的进度值,此值需要在进度范围内
anim: 在切换到新的进度值时,是否使能动画效果,LV_ANIM_ON 代表使能,LV_ANIM_OFF代表不使能。
2.2.4 设置动画时长
void lv_bar_set_anim_time(lv_obj_t * bar, uint16_t anim_time);
参数:
bar: 进度条对象
anim_time: 动画时长,单位为 ms。
2.2.5 设置样式
void lv_bar_set_style(lv_obj_t * bar, lv_bar_style_t type, const lv_style_t * style);
参数:
bar: 进度条对象
type: 要设置哪一个部件的样式,有俩个可选值如下:
LV_BAR_STYLE_BG: 是设置背景的样式
LV_BAR_STYLE_INDIC: 是设置指示器的样式
style: 样式。