当前位置: 首页 > backend >正文

LVGL环形加载器

文章目录

    • 🌀 `lv_spinner` 是什么?
    • ✅ 创建一个 `lv_spinner`
      • 示例代码:
    • 📌 参数说明
    • 🎨 样式定制
    • 🧠 补充技巧
    • 🧩 示例:自定义样式加载圈


lv_spinner 是 LVGL(Light and Versatile Graphics Library)中用来显示加载中或等待状态的 环形动画控件,常用于“加载中”的提示场景,比如网络请求、初始化等过程。


🌀 lv_spinner 是什么?

lv_spinner 是基于 lv_arc 的控件,通过动态旋转和样式设置,实现一个持续旋转的加载动画 —— 就像手机 App 启动时常见的转圈图标。


✅ 创建一个 lv_spinner

示例代码:

lv_obj_t *spinner = lv_spinner_create(lv_scr_act(), 1000, 60); // 父对象、周期(ms)、角度变化步长
lv_obj_set_size(spinner, 100, 100);  // 设置大小
lv_obj_center(spinner);             // 居中

📌 参数说明

lv_obj_t * lv_spinner_create(lv_obj_t * parent, uint32_t time, uint32_t arc_length);
参数含义
parent父对象(一般是 lv_scr_act()
time动画周期时间(单位:ms)——旋转一圈的时间
arc_length弧长(单位:角度)旋转段所占角度

例如:time = 1000arc_length = 60,意味着 60° 弧线以 1 秒钟速度旋转一圈。


🎨 样式定制

你可以通过 lv_obj_set_style_*() 函数来美化外观,例如:

lv_obj_set_style_arc_width(spinner, 8, LV_PART_MAIN);  // 设置弧线宽度
lv_obj_set_style_arc_color(spinner, lv_palette_main(LV_PALETTE_BLUE), LV_PART_INDICATOR);

常用样式有:

函数名含义
lv_obj_set_style_arc_color()设置弧线颜色
lv_obj_set_style_arc_width()设置弧线宽度
lv_obj_set_style_bg_opa()设置背景透明度
lv_obj_set_style_radius()设置圆角(一般不需设置)

🧠 补充技巧

  • lv_spinner 是基于 lv_arc 动画的自动组件,不需要自己写动画回调;
  • 可以配合状态栏或弹窗使用,提示用户“正在处理”;
  • 动画是 LVGL 内部使用 lv_anim 模块实现的,性能非常高效。

🧩 示例:自定义样式加载圈

lv_obj_t *spinner = lv_spinner_create(lv_scr_act(), 800, 90);
lv_obj_set_size(spinner, 80, 80);
lv_obj_center(spinner);lv_obj_set_style_arc_width(spinner, 6, LV_PART_INDICATOR);
lv_obj_set_style_arc_color(spinner, lv_palette_main(LV_PALETTE_GREEN), LV_PART_INDICATOR);lv_obj_set_style_bg_opa(spinner, LV_OPA_TRANSP, LV_PART_MAIN); // 背景透明

http://www.xdnf.cn/news/5527.html

相关文章:

  • Linux开机后启动Oracle数据库
  • redis数据结构-06(LRANGE、LINDEX、LSET、LREM)
  • 数字化工厂中央控制室驾驶舱系统架构文档
  • Transformer LLM
  • Linux数据库篇、第零章_MySQL30周年庆典活动
  • 关于chatshare.xyz激活码使用说明和渠道指南!
  • 3D虚拟工厂vue3+three.js
  • Babel 深度解析:现代 JavaScript 开发的桥梁
  • @RequestParam @RequestHeader @RequestBody 三者详解
  • 【英语笔记(四)】诠释所有16种英语时态,介绍每种时态下的动词变形!!含有所有时态的的动词变形汇总表格
  • C语言学习记录——深入理解指针(4)
  • 单片机-STM32部分:13、PWM
  • MongoDB
  • wget、curl 命令使用场景与命令实践
  • 数据并行基础概念知识
  • openai接口参数max_tokens改名max-completion-tokens?
  • 17前端项目----支付弹框
  • 10.二叉搜索树中第k小的元素(medium)
  • 用pymysql操作数据库
  • POST请求 、响应、requests库高级用法
  • 甜蜜聊天话术库
  • Go语言标识符
  • 嵌入式STM32学习——433M无线遥控灯
  • AI-Talk开发板之驱动1.28寸圆屏
  • 深入理解 Polly:.NET Core 中的健壮错误处理策略
  • HTTP/1.1 host虚拟主机详解
  • USB学习【6】USB传输错误的处理
  • Typescript 源码核心流程
  • 【C语言练习】035. 编写结构体的函数
  • MySQL视图深度解析:从基础语法到高级应用