-
目的
学习并实现一个类似于进度条的“棒”模型。
-
功能和函数介绍
-
功能介绍
bar在littlevGL中由两部分组成,一个背景,一个是前面的指示迹象。用户可以通过其显示一个任务的执行进度。
要实现一个bar,需要能够创造它的对象,描述其在父类显示的位置,它的尺寸大小,背景和指示迹象的风格,指示迹象滑动范围,设定其值。同时它有个特殊的功能,即能够配置为动态按照指定的时间逐步增加显示。
-
函数介绍
1、bar创立
lv_obj_t *lv_bar_create(lv_obj_t *par, constlv_obj_t *copy)
功能:为在父类中,创建一个bar变量,同时将copy对象的属性拷贝到新创建bar中返回
par:父类;
copy: 被参考拷贝bar对象;
2、bar值和动态时间和获取
void lv_bar_set_value(lv_obj_t *bar, int16_t value, lv_anim_enable_tanim)//设置
功能:配置bar的初始值value,或者当anim为true时,当前值为一个动态值,结合void lv_bar_set_anim_time(lv_obj_t *bar, uint16_t anim_time)函数使用,此函数设定动态时间,单位ms;
bar:要操作的bar;
value: 被设置的bar值;
anim:如果为true时,当前bar状态随着配置动态时间变化,如果是false,则为value
int16_t lv_bar_get_value(constlv_obj_t *bar)//获取
void lv_bar_set_anim_time(lv_obj_t *bar, uint16_t anim_time)//设置动态时间
uint16_t lv_bar_get_anim_time(lv_obj_t *bar)//获取动态时间
3、bar 值的范围设置和获取
int16_t lv_bar_get_min_value(constlv_obj_t *bar)//获取bar可滑动范围的最小值
int16_t lv_bar_get_max_value(constlv_obj_t *bar)//获取最大值
void lv_bar_set_range(lv_obj_t *bar, int16_t min, int16_t max)//配置范围,当没有配置时,默认为0-100
4、bar 风格的设置和获取
void lv_bar_set_style(lv_obj_t *bar, lv_bar_style_ttype, const lv_style_t *style)
cost lv_style_t *lv_bar_get_style(constlv_obj_t *bar, lv_bar_style_ttype)
-
设计流程和源码
设计一个动态的bar。则需要先创建bar对象,配置显示位置,其大小和动态时间,使能动态功能,同时可以设置其style。
void DrawBar()
{
//1. 创建bar
lv_obj_t * bar1 = lv_bar_create(lv_scr_act(), NULL);
//2. 设置当前bar外观大小尺寸
lv_obj_set_size(bar1, 200, 30);
//3 .设置其在父类中为中心对齐
lv_obj_align(bar1, NULL, LV_ALIGN_CENTER, 0, 0);
//4. 设置其为1s变化一次
lv_bar_set_anim_time(bar1, 1000);
//5.设置其初始值为100,并可动态变化
lv_bar_set_value(bar1, 100, LV_ANIM_ON);
}
同前面一样,在main函数调用此函数。
总结
会出现一个类似进度条的bar。