进度条 (Bar)

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)
```

虽然翻译为了进度条,但是不要以为它的满量程只能是 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秒 走完整个进度条:

进度条起始值也可以添加动画,录制有点卡,实际还是很流畅的。
```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)
```

## 获取属性
进度条控件设置的很多值都可以通过 `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)