加载器(Spinner)

::: hljs-center ![spinner.png](https://cos.easydoc.net/79463195/files/krtg5qbe.png) ::: ## 示例代码 ```lua spinner = lvgl.spinner_create(lvgl.scr_act(), nil) lvgl.obj_set_size(spinner, 100, 100) lvgl.obj_align(spinner, nil, lvgl.ALIGN_CENTER, 0, 0) ``` ## 创建 通过 `lvgl.spinner_create` 就可创建一个加载器,本身自带动画效果。 ```lua spinner = lvgl.spinner_create(lvgl.scr_act(), nil) ``` ::: hljs-center ![jdfw3.gif](https://cos.easydoc.net/71161452/files/ksbsn63u.gif) ::: ## 弧长 可以通过 `lvgl.spinner_set_arc_length` 函数调整加载器的弧长。单位是度,一圈是按 360 度计算的。 ```lua lvgl.spinner_set_arc_length(spinner, 180) ``` ::: hljs-center ![jdfw3.gif](https://cos.easydoc.net/71161452/files/ksbsv5jg.gif) ::: ## 转速 通过 `lvgl.spinner_set_spin_time` 可以设置转速,这里的单位是 ms,是加载器转完一圈的时间,GIF 录制的时间稍微有点快,这里转完一圈的时间设置的是 4 秒。 ```lua lvgl.spinner_set_spin_time(spinner, 4000) ``` ::: hljs-center ![jdfw3.gif](https://cos.easydoc.net/71161452/files/ksbt1rv9.gif) ::: ## 类型 旋转类型通过 `lvgl.spinner_set_type` 设置,这里的类型支持以下几种: ```lua lvgl.SPINNER_TYPE_SPINNING_ARC -- 顶部减速 lvgl.SPINNER_TYPE_FILLSPIN_ARC -- 弧的长度会改变 lvgl.SPINNER_TYPE_CONSTANT_ARC -- 恒速转动 ``` 下面分别看下这几种加载器的显示效果: `lvgl.SPINNER_TYPE_SPINNING_ARC` 在顶部的时候可以看到略微减速了。 ```lua lvgl.spinner_set_type(spinner, lvgl.SPINNER_TYPE_SPINNING_ARC) ``` ::: hljs-center ![jdfw3.gif](https://cos.easydoc.net/71161452/files/ksbtfy5s.gif) ::: `lvgl.SPINNER_TYPE_FILLSPIN_ARC ` 弧的长度会改变,这个效果比较明显。 ```lua lvgl.spinner_set_type(spinner, lvgl.SPINNER_TYPE_FILLSPIN_ARC ) ``` ::: hljs-center ![jdfw4.gif](https://cos.easydoc.net/71161452/files/ksbtmhvd.gif) ::: `lvgl.SPINNER_TYPE_CONSTANT_ARC ` 恒定速度转动。 ```lua lvgl.spinner_set_type(spinner, lvgl.SPINNER_TYPE_CONSTANT_ARC) ``` ::: hljs-center ![jdfw4.gif](https://cos.easydoc.net/71161452/files/ksbtocym.gif) ::: ## API ### lvgl.lvgl.spinner_create |调用|lvgl.lvgl.spinner_create(par, copy)| |-|-| |功能|创建一个加载器对象| |返回|指向创建的加载器的指针| |参数|| |par|指向对象的指针, 它将是新键对象的父对象| |copy|指向加载器对象的指针, 如果不为 nil, 则将从其复制新对象| ### lvgl.spinner_set_arc_length |调用|lvgl.spinner_set_arc_length(spinner, deg)| |-|-| |功能|设置加载器的弧长| |参数|| |spinner|指向加载器对象的指针| |deg|加载器的弧长| ### lvgl.spinner_set_spin_time |调用|lvgl.spinner_set_spin_time(spinner, time)| |-|-| |功能|设置加载器的动画时间| |参数|| |spinner|指向加载器对象的指针| |time|加载器的动画时间| ### lvgl.spinner_set_type |调用|lvgl.spinner_set_type(spinner, type)| |-|-| |功能|设置加载器的类型| |参数|| |spinner|指向加载器对象的指针| |time|加载器的类型| ||lvgl.SPINNER_TYPE_SPINNING_ARC -- 顶部减速| ||lvgl.SPINNER_TYPE_FILLSPIN_ARC -- 弧的长度会改变| ||lvgl.SPINNER_TYPE_CONSTANT_ARC -- 恒速转动| ### lvgl.spinner_set_dir |调用|lvgl.spinner_set_dir(spinner, dir)| |-|-| |功能|设置加载器的动画方向| |参数|| |spinner|指向加载器对象的指针| |dir|加载器的方向| ||lvgl.SPINNER_DIR_FORWARD -- 正向| ||lvgl.SPINNER_DIR_BACKWARD -- 反向| ### lvgl.spinner_get_arc_length |调用|lvgl.spinner_get_arc_length(spinner)| |-|-| |功能|获取加载器的弧长| |返回|加载器的弧长| |参数|| |spinner|指向加载器对象的指针| ### lvgl.spinner_get_spin_time |调用|lvgl.spinner_get_spin_time(spinner)| |-|-| |功能|获取加载器的动画时间| |返回|加载器的动画时间| |参数|| |spinner|指向加载器对象的指针| ### lvgl.spinner_get_type |调用|lvgl.spinner_get_type(spinner)| |-|-| |功能|获取加载器的类型| |返回|加载器的类型| |参数|| |spinner|指向加载器对象的指针| ### lvgl.spinner_get_dir |调用|lvgl.spinner_get_dir(spinner)| |-|-| |功能|获取加载器的动画方向| |返回|加载器的动画方向| |参数|| |spinner|指向加载器对象的指针 [参考链接(C语言)](https://docs.lvgl.io/7.11/widgets/spinner.html)