Hi,大家好,欢迎来到STM32之littlevGL课堂,我们在上节课中学习了圆弧控件(lv_arc),本节课带大家来看一下如何使用进度条控件,废话不多说! 一有图有真相 首先这个进度条的翻译可能不是很准确,因为这个控件可以用在很多地方,并不单单可以作为进度条来使用,所以大家真正使用的时候还是要灵活多变的,同样的,我们先来看一下效果: 本节课我们就做一个上面的效果,可能现在有些同学已经心里有底了,因为上节课我们也做过一个动态效果,但是本节课的处理方式比起上节课来要更简单,因为库里给我们提供了一个API,使得我们可以很简单就能够完成这个效果。 二 代码分析 static void bar_test(void) { lv_obj_t * bar1 = lv_bar_create(lv_scr_act(), NULL); lv_obj_set_size(bar1, 200, 30); lv_obj_align(bar1, NULL, LV_ALIGN_CENTER, 0, 0); lv_bar_set_anim_time(bar1, 1000); lv_bar_set_value(bar1, 100, LV_ANIM_ON); } 下面我们再来分析一下代码,前三行代码基本跟之前的一样也是创建了一个"进度条"对象,然后设置一下大小(宽和高),然后居中对齐无偏移,这里就不再详细解释了,重点的是下面的两行代码,这是实现上面图片效果的主要代码,首先lv_bar_set_anim_time(),是设置了bar1对象的一个动画时间为1000ms,就是这个进度条从0加载到100的时间,但是只设置一个动画时间是不够的,我们还需要开启以动画加载的方式,那么当然就是我们的下一行代码了,lv_bar_set_value(),这句代码有三个参数,第一个就是要设置的lv_bar对象,第二个是要将这个进度条重新设置的值的大小(这个对象的默认值是从0~100),最后一个参数是以动画加载的方式显示,当然你也可以选用LV_ANIM_OFF参数,直接设置为要设置的值不用任何过渡。 上面我们说这个对象的值的大小是从1~100,那么有没有办法设置这个区间范围呢?答案当然是有的,那就是lv_bar_set_range(lv_obj_t *bar, int16_t min, int16_t max)函数,你给定一个最小值和最大值就可以重新设置这个对象的区间,是不是很简单? OK,这就是本节课我们要学习的内容了,下一节课我们学习按钮控件,我们下一节课见! |