bar 控件默认的范围是 0-100,可以通过函数修改其范围
lv_bar_set_range(bar1, 0, 100); /* 设置值的范围,最大值和最小值 */
bar 控件的值可以设置在范围内,可以手动设置一个新值 lv_bar_set_value(bar1, 100, LV_ANIM_ON); /* 设置 bar 的值,动画显示打开 */
函数的第三个参数用于确定是否打开动画。参数 LV_ANIM_ON/OFF ,动画 的时间可以通过函数 lv_bar_set_anim_time(bar, 100) 进行修改,时间单位 为 ms
static void task_change_bar(lv_task_t *t)
{
if (lv_bar_get_value(t->user_data) < lv_bar_get_max_value(t->user_data))
{
lv_bar_set_value(t->user_data, (lv_bar_get_value(t->user_data)+1), LV_ANIM_OFF);
}
else
{
lv_bar_set_value(t->user_data, lv_bar_get_min_value(t->user_data), LV_ANIM_OFF);
}
}
void demo_create(void)
{
lv_obj_t *scr = lv_disp_get_scr_act(NULL); /* 获取当前屏幕 */
lv_obj_t *bar1 = lv_bar_create(scr, NULL); /* 创建 bar 控件 */
lv_bar_set_anim_time(bar1, 2000); /* 设置动画时间 */
lv_bar_set_range(bar1, 0, 100); /* 设置值的范围,最大值和最小值 */
lv_bar_set_value(bar1, 100, LV_ANIM_ON); /* 设置 bar 的值,动画显示打开 */
lv_obj_align(bar1, NULL, LV_ALIGN_IN_TOP_MID, 0, 0); /* 设置位置 */
lv_obj_t *bar2 = lv_bar_create(scr, NULL); /* 创建 bar 控件 */
lv_bar_set_sym(bar2, true); /* 启用对称 */
lv_bar_set_range(bar2, -100, 100); /* 设置范围 */
lv_bar_set_value(bar2, 50, LV_ANIM_ON); /* 设置 bar 的值,动画显示打开 */
lv_obj_align(bar2, bar1, LV_ALIGN_OUT_BOTTOM_MID, 0, 10); /* 设置位置 */
lv_task_create(task_change_bar, 100, LV_TASK_PRIO_LOW, bar2); /* 创建个任务定期修改 bar 的 值 */
}