进度条 (Bar)

::: hljs-center ![bar.png](https://cos.easydoc.net/79463195/files/krtglh4h.png) ::: Bar 是进度条,可以用来显示数值,加载进度。 ## 示例代码 ```lua -- 创建进度条 bar = lvgl.bar_create(lvgl.scr_act(), nil) -- 设置尺寸 lvgl.obj_set_size(bar, 200, 20); -- 设置位置居中 lvgl.obj_align(bar, NULL, lvgl.ALIGN_CENTER, 0, 0) -- 设置加载完成时间 lvgl.bar_set_anim_time(bar, 2000) -- 设置加载到的值 lvgl.bar_set_value(bar, 100, lvgl.ANIM_ON) ``` ## 创建 可以通过 `lvgl.bar_create(par, copy)` 创建一个进度条对象然后对其进行操作。 ```lua -- 创建控件 bar = lvgl.bar_create(lvgl.scr_act(), nil) ``` ## 设置数值 进度条的用法还是比较简单的,功能比较单一,只是设置数值。 ```lua lvgl.bar_set_value(bar, 50, lvgl.ANIM_OFF) ``` ::: hljs-center ![a.png](https://cos.easydoc.net/71161452/files/ks0coc3e.png) ::: 虽然翻译为了进度条,但是不要以为它的满量程只能是 100 (虽然这是个默认数值),进度条的数值范围也是可以设置的,比如下面的代码: ```lua lvgl.bar_set_range(bar, 100, 200) lvgl.bar_set_value(bar, 150, lvgl.ANIM_OFF) ``` 这个就是把进度条的数值范围设置到了 100-200,所以 150 就是进度条的中间,跟上面的显示效果一样的。 ## 动画 进度条设置的值可以是实时的,当然也可以是有延时的,可以通过 `lvgl.ANIM_OFF` `lvgl.ANIM_ON` 这两个值来决定是否显示设置值的一个中间效果。通过 `lvgl.bar_set_anim_time` 可以设置加载时间。 ```lua -- 设置加载完成时间 lvgl.bar_set_anim_time(bar, 2000) -- 设置加载到的值 lvgl.bar_set_value(bar, 100, lvgl.ANIM_ON) ``` 上面代码就是设置了 2秒 走完整个进度条: ::: hljs-center ![jdfw3.gif](https://cos.easydoc.net/71161452/files/ks0czfg0.gif) ::: 进度条起始值也可以添加动画,录制有点卡,实际还是很流畅的。 ```lua -- 设置进度条起始值 lvgl.bar_set_start_value(bar, 100, lvgl.ANIM_ON) sys.wait(2000) -- 设置加载完成时间 lvgl.bar_set_anim_time(bar, 2000) -- 设置加载到的值 lvgl.bar_set_value(bar, 100, lvgl.ANIM_ON) ``` ::: hljs-center ![jdfw4.gif](https://cos.easydoc.net/71161452/files/ks0dnmb2.gif) ::: ## 获取属性 进度条控件设置的很多值都可以通过 `get` 获取,具体使用情况可以参照 API。 ## API ### lvgl.bar_create |调用|lvgl.bar_create(par, copy)| |-|-| |功能|创建一个进度条对象| |返回|指向创建的进度条的指针| |参数|| |par|指向对象的指针, 它将是新键对象的父对象| |copy|指向进度条对象的指针, 如果不为 nil, 则将从其复制新对象| ### lvgl.bar_set_value |调用|lvgl.bar_set_value(bar, value, anim)| |-|-| |功能|在进度条上设置新值| |参数|| |bar|指向进度条对象的指针| |value|新数值| |anim|lvgl.ANIM_ON 用动画设置值。lvgl.ANIM_OFF 立即更改值。| ### lvgl.bar_set_start_value |调用|lvgl.bar_set_start_value(bar, start_value, anim)| |-|-| |功能|在进度条上设置新的起始值| |参数|| |bar|指向进度条对象的指针| |value|新的起始值| |anim|lvgl.ANIM_ON 用动画设置值。lvgl.ANIM_OFF 立即更改值。| ### lvgl.bar_set_range |调用|lvgl.bar_set_range(bar, min, max)| |-|-| |功能|设置进度条的最小值和最大值| |参数|| |bar|指向进度条对象的指针| |min|最小值| |max|最大值| ### lvgl.bar_set_type |调用|lvgl.bar_set_type(bar, type)| |-|-| |功能|设置进度条的类型。| |参数|| |bar|指向进度条对象的指针| |type|进度条类型| ||lvgl.BAR_TYPE_NORMAL| ||lvgl.BAR_TYPE_SYMMETRICAL| ||lvgl.BAR_TYPE_CUSTOM| ### lvgl.bar_set_anim_time |调用|lvgl.bar_set_anim_time(bar, anim_time)| |-|-| |功能|设置进度条的动画时间| |参数|| |bar|指向进度条对象的指针| |anim_time|动画时间(以毫秒为单位)。| ### lvgl.bar_get_value |调用|lvgl.bar_get_value(bar)| |-|-| |功能|获取进度条的数值| |返回|进度条的数值| |参数|| |bar|指向进度条对象的指针| ### lvgl.bar_get_start_value |调用|lvgl.bar_get_start_value(bar)| |-|-| |功能|获取进度条的起始值| |返回|进度条的起始值| |参数|| |bar|指向进度条对象的指针| ### lvgl.bar_get_min_value |调用|lvgl.bar_get_min_value(bar)| |-|-| |功能|获取进度条的最小值| |返回|进度条的最小值| |参数|| |bar|指向进度条对象的指针| ### lvgl.bar_get_max_value |调用|lvgl.bar_get_max_value(bar)| |-|-| |功能|获取条形的最大值| |返回|进度条的最大值| |参数|| |bar|指向进度条对象的指针| ### lvgl.bar_get_type |调用|lvgl.bar_get_type(bar)| |-|-| |功能|获取进度条的类型。| |返回|进度条类型| |参数|| |bar|指向进度条对象的指针| ### lvgl.bar_get_anim_time |调用|lvgl.bar_get_anim_time(bar)| |-|-| |功能|获取进度条的动画时间| |返回|动画时间(以毫秒为单位)。| |参数|| |bar|指向进度条对象的指针| [参考链接(C语言)](https://docs.lvgl.io/7.11/widgets/bar.html)