立即注册 找回密码

微雪课堂

搜索

树莓派littlevGL系列教程:“进度条”(lv_bar)

2019-11-12 21:30| 发布者: imliubo| 查看: 7577| 评论: 1|原作者: IAMLIUBO

摘要: Hi,大家好,欢迎来到树莓派之littlevGL课堂,我们在上节课中学习了圆弧控件(lv_arc),本节课带大家来看一下如何使用进度条控件,废话不多说!首先这个进度条的翻译可能不是很准确,因为这个控件可以用在很多地方, ...
Hi,大家好,欢迎来到树莓派之littlevGL课堂,我们在上节课中学习了圆弧控件(lv_arc),本节课带大家来看一下如何使用进度条控件,废话不多说!
一有图有真相
首先这个进度条的翻译可能不是很准确,因为这个控件可以用在很多地方,并不单单可以作为进度条来使用,所以大家真正使用的时候还是要灵活多变的,同样的,我们先来看一下效果:

本节课我们就做一个上面的效果,可能现在有些同学已经心里有底了,因为上节课我们也做过一个动态效果,但是本节课的处理方式比起上节课来要更简单,因为库里给我们提供了一个API,使得我们可以很简单就能够完成这个效果。
二 代码分析
用户可下载"圆弧对象(lv_arc)的使用"文章末尾的Demo工程(点击我直接下载),参考圆弧对象(lv_arc)的使用文章,将以下Demo代码复制到Demo工程test.c文件空白处.然后在test.c文件的create_test()函数中增加bar_test()函数测试。
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);
}
同样的,我们修改一下create_test()函数,如下:
void create_test(void){
    /*
     * lv_arc
     */
    /* arc_test(); */
    /* arc_test2(); */

    /*
     * lv_bar
     */
     bar_test();
}
以后我们的测试代码都会像上面一样去测试,大家请自己根据 圆弧对象(lv_arc)的使用 一节的代码进行修改,本节课就不提供完整的代码下载了,因为完整的代码压缩后也比较大,大家就按上面的代码进行修改就可以进行测试了。
下面我们再来分析一下代码,前三行代码基本跟之前的一样也是创建了一个"进度条"对象,然后设置一下大小(宽和高),然后居中对齐无偏移,这里就不再详细解释了,重点的是下面的两行代码,这是实现上面图片效果的主要代码,首先lv_bar_set_anim_time(),是设置了bar1对象的一个动画时间为1000ms,就是这个进度条从0加载到100的时间,但是只设置一个动画时间是不够的,我们还需要开启以动画加载的方式,那么当然就是我们的下一行代码了,lv_bar_set_value(),这句代码有三个参数,第一个就是要设置的lv_bar对象,第二个是要将这个进度条重新设置的值的大小(这个对象的默认值是从1~100),最后一个参数是以动画加载的方式显示,当然你也可以选用LV_ANIM_OFF参数,直接设置为要设置的值不用任何过渡。
上面我们说这个对象的值的大小是从1~100,那么有没有办法设置这个区间范围呢?答案当然是有的,那就是lv_bar_set_range(lv_obj_t *bar, int16_t min, int16_t max)函数,你给定一个最小值和最大值就可以重新设置这个对象的区间,是不是很简单?

OK,这就是本节课我们要学习的内容了,下一节课我们学习按钮控件,我们下一节课见!

211

顶一下

刚表态过的朋友 (211 人)

相关阅读

发表评论

最新评论

引用 游客 2020-6-3 17:14
请问进度条形态改成音量格形状吗?

查看全部评论(1)

Arduino
基础入门
OpenCV
littleGL

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

GMT+8, 2024-4-23 22:43 , Processed in 0.032862 second(s), 18 queries .

返回顶部