立即注册 找回密码

微雪课堂

搜索
微雪课堂 图形用户界面(GUI) 查看内容

STM32之littlevGL系列教程:“进度条”(lv_bar)

2020-3-28 21:29| 发布者: imliubo| 查看: 4144| 评论: 0|原作者: IAMLIUBO

摘要: Hi,大家好,欢迎来到STM32之littlevGL课堂,我们在上节课中学习了圆弧控件(lv_arc),本节课带大家来看一下如何使用进度条控件,废话不多说!一有图有真相首先这个进度条的翻译可能不是很准确,因为这个控件可以用在 ...
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);
}
这里的测试代码跟跟上一篇文章还是一样,我们在demo_test注释掉上节课的代码,然后加入bar_test()
下面我们再来分析一下代码,前三行代码基本跟之前的一样也是创建了一个"进度条"对象,然后设置一下大小(宽和高),然后居中对齐无偏移,这里就不再详细解释了,重点的是下面的两行代码,这是实现上面图片效果的主要代码,首先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,这就是本节课我们要学习的内容了,下一节课我们学习按钮控件,我们下一节课见!



92

顶一下

刚表态过的朋友 (92 人)

相关阅读

最新评论

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-4-25 18:20 , Processed in 0.014650 second(s), 17 queries .

返回顶部