lvgl 画好一个圆弧arc 要了解的相关知识

news2024/11/20 1:33:17

目录

  • 一、概述
    • 1. css盒子模型示意图
    • 2. 圆弧的理解对象
    • 3. lvgl 版本
  • 二、功能细节
    • 1. 圆弧的角度
      • 1.1 圆弧的0度在哪里?
      • 1.2 设置圆弧角度的
      • 1.3 设置圆弧的背景角度
    • 2. 圆弧的半径
    • 3. 圆弧的圆角
      • 3.1 设置圆弧的圆角
        • 效果如下:
    • 4. 圆弧的宽度
      • 4.1圆弧主体的宽度
      • 4.2 圆弧指示器的宽度
    • 5. 设置圆弧对象的位置
      • 5.1设置对象的绝对坐标
      • 5.2设置相对父类的位置
    • 6. 设置圆弧的颜色
      • 6.1 背景颜色
      • 6.2 圆弧主体颜色
      • 6.3 圆弧指示器颜色
    • 7. 设置圆弧的填充距离
      • 7.1 填充的定义
      • 7.2 API 使用如下
        • 将四个内边距分别设置为20
        • 将四个内边距全部设置为0
      • 7.3 内边距为0 的情况

一、概述

1. css盒子模型示意图

lvgl 的样式设置参考了css 的盒子模型的概念,了解盒子模型的相关知识点,有助于利用lvgl 实现我们需要的UI效果。
在这里插入图片描述

2. 圆弧的理解对象

圆弧对象不仅仅是“红绿色圆”所组成的部分,而是图中以白色为背景的所有区域。

在这里插入图片描述

3. lvgl 版本

V8.3.x

二、功能细节

1. 圆弧的角度

1.1 圆弧的0度在哪里?

默认模式下(NORMAL),圆弧的0度在3点钟的方向,随着度数的增长,圆弧向着顺时针的方向生长。

在这里插入图片描述

1.2 设置圆弧角度的

设置开始和结束角度

void lv_arc_set_angles(lv_obj_t * arc, uint16_t start, uint16_t end);

设置结束角度

void lv_arc_set_end_angle(lv_obj_t * arc, uint16_t end);

1.3 设置圆弧的背景角度

这里的背景指的是圆弧主体。

void lv_arc_set_bg_angles(lv_obj_t * arc, uint16_t start, uint16_t end);
void lv_arc_set_bg_start_angle(lv_obj_t * arc, uint16_t start);
void lv_arc_set_bg_end_angle(lv_obj_t * arc, uint16_t end);

2. 圆弧的半径

lvgl arc 没有直接提供api 去设置一个圆弧的半径。lv_obj_set_style_radius看起来很像,实际上是用来设置圆弧对象背景的4个角的弧度的。

由于arc 对象继承于obj 类对象,我们可以通过调用 lv_obj_set_size 函数来设置圆弧对象的宽和高,从而实现对圆弧半径的设置。

void lv_obj_set_size(lv_obj_t * obj, lv_coord_t w, lv_coord_t h);

3. 圆弧的圆角

3.1 设置圆弧的圆角

lv_obj_set_style_radius( ui_Arc1, 20, LV_PART_MAIN | LV_STATE_DEFAULT );
效果如下:

在这里插入图片描述

4. 圆弧的宽度

旧版本(V7.11)的lvgl 设置圆弧宽度的api 比较隐蔽,是通过设置样式的line_width 来实现设置圆弧宽度。

新版本(V8.3.x ) 的lvgl设置圆弧宽度如下:

void lv_obj_set_style_arc_width(struct _lv_obj_t * obj, lv_coord_t value, lv_style_selector_t selector)

4.1圆弧主体的宽度

lv_obj_set_style_arc_width( ui_Arc1, 10, LV_PART_MAIN | LV_STATE_DEFAULT );

4.2 圆弧指示器的宽度

lv_obj_set_style_arc_width( ui_Arc1, 10, LV_PART_INDICATOR | LV_STATE_DEFAULT );

5. 设置圆弧对象的位置

5.1设置对象的绝对坐标

void lv_obj_set_pos(lv_obj_t * obj, lv_coord_t x, lv_coord_t y);

5.2设置相对父类的位置

设置相对父类中央对齐。其他对齐方式,可以跳转到LV_ALIGN_CENTER 定义处,选择其他对齐方式。

lv_obj_set_align( ui_Arc1, LV_ALIGN_CENTER );

6. 设置圆弧的颜色

在这里插入图片描述

如上图所示,圆弧主要有三种颜色需要设置。

6.1 背景颜色

 lv_obj_set_style_bg_color( ui_Arc1, lv_color_white(), LV_PART_MAIN | LV_STATE_DEFAULT );

6.2 圆弧主体颜色

//绿色
lv_obj_set_style_arc_color( ui_Arc1, lv_color_hex( 0x04FF0F ), LV_PART_MAIN | LV_STATE_DEFAULT );

6.3 圆弧指示器颜色

lv_obj_set_style_arc_color( ui_Arc1, lv_color_hex( 0xFF404B ), LV_PART_INDICATOR | LV_STATE_DEFAULT );

7. 设置圆弧的填充距离

7.1 填充的定义

定义元素边框与元素内容之间的空间,即上下左右的内边距。

在这里插入图片描述

  • 上边距: pad_top
  • 下边距:pad_bottom
  • 左边距:pad_left
  • 右边距:pad_right

7.2 API 使用如下

将四个内边距分别设置为20
lv_obj_set_style_pad_left( ui_Arc1, 20, LV_PART_MAIN | LV_STATE_DEFAULT );
lv_obj_set_style_pad_right( ui_Arc1, 20, LV_PART_MAIN | LV_STATE_DEFAULT );
lv_obj_set_style_pad_top( ui_Arc1, 20, LV_PART_MAIN | LV_STATE_DEFAULT );
lv_obj_set_style_pad_bottom( ui_Arc1, 20, LV_PART_MAIN | LV_STATE_DEFAULT );

将四个内边距全部设置为0
lv_obj_set_style_pad_all( ui_Arc1, 0, LV_PART_MAIN | LV_STATE_DEFAULT );

7.3 内边距为0 的情况

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1221478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM的宠物医院管理系统

基于SSM的宠物医院管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringMyBatisSpringMVC工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 后台 摘要 随着人们对宠物健康关注的增加,宠物医疗服务的需求也…

云端力量:探索亚马逊云服务器,提升您的业务无限可能

文章目录 前言亚马逊云服务器简介亚马逊云服务器的优势使用步骤Amazon EC2 实例类型常见问题 总结 前言 随着大数据、人工智能和物联网等技术的飞速发展,企业对于高效、灵活和可扩展的计算需求日益增强。在这样的背景下,亚马逊云服务器 以其卓越的性能、…

TSINGSEE青犀视频平台EasyCVR如何搭建自然保护区视频监控系统

随着经济的发展与城市化进程,很多国家自然保护区不断被破坏,为了对国家自然保护区进行全面管理,加大保护区的防护管理力度,人工管理工作量十分繁重,并会存在一些漏洞。因此在国家自然保护区建立一套完整的视频监控系统…

(免费)双相情感障碍筛查MDQ 在线测试双向情感障碍

MDQ用于筛查双相障碍,主要包含13个关于双相障碍症状的是非问题,当前测试采用的量表为2010年杨海晨博士翻译版。该量表为目前世界范围内最常用的双相障碍筛查量表,目前在精神科门诊最为常用的量表之一。 双向情感障碍筛查量表,也叫…

提取纯色马赛克

​​​​​​ 图像预处理 将彩色图像加载到内存。 转换图像为灰度图像,以简化处理。 对灰度图像应用二值化处理,将图像中的纯色区域分为前景和背景。这可以使用阈值处理来完成。 轮廓检测 使用轮廓检测算法,例如OpenCV的 findContours 函数&…

①Redis String 字符串类型【命令汇总】

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Redis String ①Redis String 字符串类型【命令…

Linux 无名管道实现文件复制

无名管道 通过一个管道(假象)进行传输数据,但是这个管道的传输方式是单工(半双工)的,就是这个管道允许进行发送和接受数据,不过不能同时进行。 创建无名管道 这里用到一个pipe(&…

微软Ignite 2023大盘点:GPT-4 Turbo、DALL-E 3等

11月16日,微软在美国西雅图举办“Microsoft Ignite 2023”全球开发者大会。ChatGPT等生成式AI成为了本次大会的重要主题。 下面「AIGC开放社区」将根据大会发布的内容,盘点重要内容。 GPT-4 Turbo、 DALL E 3等全新模型 16K上下文的新GPT-3.5 Turbo模…

视频桥接IC LT8711UXC适用于4LANE TYPE-C/DP转HDMI,另支持支持HDCP协议,分辨率高达4K60HZ!

1.描述 应用功能:LT8711UXC适用于TYPE-C转HDMI2.0,DP1.4转HDMI2.0应用方案,另HDMI带HDCP协议 分辨率:支持4K60HZ 工作温度范围:−40C to 85C 产品封装:QFN48 (6*6)最小包装数:4900pc…

给openlab搭建web网站

网站需求: 1、基于域名 www.openlab.com 可以访问网站内容为 welcome to openlab!!! 2、给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站 1)基于 www.openlab.com/student 网站访问学生信息 2)基于 www.openlab.com/…

今天遇到Windows 10里安装的Ubuntu(WSL)的缺点

随着技术的发展,越来越多开发者转向使用 Windows Subsystem for Linux(WSL)在 Windows 10 上进行开发,也就是说不用虚拟机,不用准备多一台电脑,只需要在Windows 10/11 里安装 WSL 就能体验 Linux 系统。因此…

最大似然估计的介绍

最大似然估计(Maximum Likelihood Estimation,简称MLE)是一种用于估计概率分布中参数的方法。该方法的核心思想是选择使得观察到的数据在给定模型下出现的概率最大的参数值作为估计值。 最大似然估计具有很好的性质,包括渐进正态性…

新手老师怎么发布班级查询?

现在科技发展飞快,班级查询系统已经成为了许多学校必备的教务工具。可以让学生们快速查找到班级的各项信息,包括但不限于课程安排、考试成绩、分班等。对老师来说,班级查询系统可以提高工作效率,减少重复劳动,学生或者…

postman查询数据库-Xmysql

步骤1:安装node.js 下载地址:Download | Node.js步骤2:安装Xmysql工具,命令行输入 npm install -g xmysql ,过程中会自动安装相关依赖;步骤3:连接数据库 xmysql -h ip -u 账号 -p 密码 -d 库名 如下表示连…

Attention Transformer

来源老师课件,方便以后复习。 课参考链接: http://jalammar.github.io/illustrated-transformer/ 之前的知识链接: 【知识链接】WGAN Transformer Vit Swin-Transformer Swin-Unet Res-Vit TransUNet MAE Bra ADDA 打分函数: 多头…

腾讯云便宜服务器有哪些?腾讯云这个服务器一个月7块钱!

大家好,今天我们来一起探讨一下腾讯云便宜服务器的相关问题。相信很多人在寻找可靠的云服务器时都会关注价格,而腾讯云作为国内领先的云计算平台,其价格优惠的服务器产品也是备受关注。那么,腾讯云便宜服务器有哪些呢?…

apifox中get请求传递集合方式

项目中get请求需要传递集合方式: 接口中接收方式: GetMapping("/findGoodsCouponInfoVos") public ApiResult findGoodsCouponInfoVos(RequestParam(value "selectedCouponIds",required false) List<Integer> selectedCouponIds, NotNull(messa…

flink中配置Rockdb的重要配置项

背景 由于我们在flink中使用了状态比较大&#xff0c;无法完全把状态数据存放到tm的堆内存中&#xff0c;所以我们选择了把状态存放到rockdb上&#xff0c;也就是使用rockdb作为状态后端存储,本文就是简单记录下使用rockdb状态后端存储的几个重要的配置项 使用rockdb状态后端…

59 权限提升-Win溢出漏洞及ATSCPS提权

目录 知识点必备&#xff1a;windows权限认识(用户及用户组)0x01 普通权限0x02特殊权限 演示案例:基于WEB环境下的权限提升-阿里云靶机基于本地环境下的权限提升-系统溢出漏洞基于本地环境下的权限提升-AT&SC&PS命令 案例给到的思路点总结如下:涉及资源: 这个章节会讲到…

122.Android 简单的历史搜索

第一步 FlowLayout&#xff1a; public class FlowLayout extends ViewGroup {private int mHorizontalSpacing dp2px(16); //每个item横向间距private int mVerticalSpacing dp2px(8); //每个item横向间距private List<List<View>> allLines new ArrayList<…