LVGL部件7

一.图片部件

1.知识概览

在这里插入图片描述

![2024-02-02T13:23:08.png][2]

![2024-02-02T13:55:22.png][3]

2.函数接口

1.lv_img_set_pivot

在LVGL(LittlevGL)中,要设置图像对象的旋转中心点,可以使用 lv_img_set_pivot 函数。该函数的原型如下:

void lv_img_set_pivot(lv_obj_t * img, lv_coord_t x, lv_coord_t y);
  • img 是指向要设置旋转中心点的图像对象的指针。
  • xy 是旋转中心点的坐标。

以下是一个示例代码,展示如何使用 lv_img_set_pivot 函数来设置图像对象的旋转中心点:

// 创建一个图像对象
lv_obj_t *img = lv_img_create(lv_scr_act(), NULL);// 设置图像对象的旋转中心点
lv_img_set_pivot(img, img->coords.x1 + img->coords.w / 2, img->coords.y1 + img->coords.h / 2);

在这个示例中,我们创建了一个图像对象 img,然后使用 lv_img_set_pivot 函数将该图像对象的旋转中心点设置为图像的中心点。

2.lv_img_set_angle

在LVGL(LittlevGL)中,可以使用 lv_img_set_angle 函数来设置图像对象的旋转角度。该函数的原型如下:

void lv_img_set_angle(lv_obj_t * img, int16_t angle);
  • img 是指向要设置旋转角度的图像对象的指针。
  • angle 是一个有符号 16 位整数,表示旋转角度。正值表示顺时针旋转,负值表示逆时针旋转。单位为度(°)。

以下是一个示例代码,展示如何使用 lv_img_set_angle 函数来设置图像对象的旋转角度:

// 创建一个图像对象
lv_obj_t *img = lv_img_create(lv_scr_act(), NULL);// 设置图像对象的旋转角度为 90 度(顺时针旋转)
lv_img_set_angle(img, 90);

在这个示例中,我们创建了一个图像对象 img,然后使用 lv_img_set_angle 函数将该图像对象的旋转角度设置为 90 度,表示将图像按顺时针方向旋转 90 度。

3.lv_obj_set_style_img_recolor

在LVGL(LittlevGL)中,可以使用 lv_obj_set_style_img_recolor 函数来为对象的图像样式设置重新上色。这个函数用于改变对象上的图像样式的颜色。

函数原型如下:

void lv_obj_set_style_img_recolor(lv_obj_t * obj, lv_obj_part_t part, lv_color_filter_t * filter);
  • obj 是指向要设置图像重新上色的对象的指针。
  • part 是描述对象的哪个部分要设置图像重新上色的选项。
  • filter 是指向 lv_color_filter_t 类型的颜色过滤器结构的指针,用于指定图像重新上色的方式。

以下是一个示例代码,展示如何使用 lv_obj_set_style_img_recolor 函数为对象的图像样式设置重新上色:

// 创建一个对象
lv_obj_t *obj = lv_obj_create(lv_scr_act(), NULL);// 创建一个颜色过滤器
lv_color_filter_t recolor_filter;
lv_color_filter_init(&recolor_filter);
lv_color_filter_set_peculiar(&recolor_filter, LV_COLOR_MAKE(255, 0, 0), LV_COLOR_MAKE(0, 255, 0));// 将颜色过滤器应用于对象的图像样式
lv_obj_set_style_img_recolor(obj, LV_OBJ_PART_MAIN, &recolor_filter);

在这个示例中,我们创建了一个对象 obj,然后创建了一个颜色过滤器 recolor_filter,并使用 lv_color_filter_set_peculiar 函数设置颜色过滤器的颜色映射。最后,使用 lv_obj_set_style_img_recolor 函数将颜色过滤器应用于对象的主要图像样式。

图像重新上色功能适用于支持图像颜色重新上色的对象和主题。确保对象的图像样式为可重新上色,并且当前的主题支持颜色重新上色。

3.代码实例

void my_lvgl(void)
{lv_obj_t *img=lv_img_create(lv_scr_act());  //创建图片部件lv_img_set_src(img,&img_test);  //设置图片源lv_obj_center(img);//lv_img_set_offset_x(img,100);   //设置x轴偏移//lv_img_set_offset_y(img,20);   //设置y轴偏移//lv_obj_set_style_img_recolor(img,lv_color_hex(0xffe1d2),LV_PART_MAIN);   //设置重新着色//lv_obj_set_style_img_recolor_opa(img,150,LV_PART_MAIN);   //设置透明度lv_obj_update_layout(img);  //更新图片布局lv_img_set_pivot(img,0,0);  //社会中心点lv_img_set_zoom(img,128);  //设置缩放,扩大lv_img_set_angle(img,900);  //旋转90度}

二.色环部件

1.知识概览

![2024-02-02T14:17:33.png][4]

![2024-02-02T14:21:27.png][5]

2.函数接口

1.lv_colorwheel_set_mode

在LVGL(LittlevGL)中,可以使用 lv_colorwheel_set_mode 函数来设置颜色选择器(colorwheel)的模式。

函数原型如下:

void lv_colorwheel_set_mode(lv_obj_t * colorwheel, lv_colorwheel_mode_t mode);
  • colorwheel 是指向要设置模式的颜色选择器对象的指针。
  • mode 是一个枚举类型 lv_colorwheel_mode_t,用于指定颜色选择器的模式。可以在 LVGL 的头文件中找到 lv_colorwheel_mode_t 的定义。

以下是 lv_colorwheel_mode_t 中可能的模式值:

  • LV_COLORWHEEL_MODE_HUE: 仅显示色相(Hue)。
  • LV_COLORWHEEL_MODE_HUE_SAT: 显示色相(Hue)和饱和度(Saturation)。
  • LV_COLORWHEEL_MODE_HUE_SAT_VAL: 显示色相(Hue)、饱和度(Saturation)和亮度(Value)。

以下是一个示例代码,展示如何使用 lv_colorwheel_set_mode 函数来设置颜色选择器的模式:

// 创建一个颜色选择器对象
lv_obj_t *colorwheel = lv_colorwheel_create(lv_scr_act(), NULL);// 设置颜色选择器的模式为 "Hue" 和 "Saturation"
lv_colorwheel_set_mode(colorwheel, LV_COLORWHEEL_MODE_HUE_SAT);

在这个示例中,我们创建了一个颜色选择器对象 colorwheel,然后使用 lv_colorwheel_set_mode 函数将颜色选择器的模式设置为 “Hue” 和 “Saturation”,即同时显示色相和饱和度。

2.lv_colorwheel_set_mode_fixed

lv_colorwheel_create() 函数是 LVGL(LittlevGL)提供的用于创建颜色选择器(Color Wheel)对象的函数。通过该函数可以创建一个可交互的色环,用户可以通过触摸或鼠标操作来选择颜色。

下面是一个示例代码,展示了如何使用 lv_colorwheel_create() 函数创建一个颜色选择器:

// 创建一个颜色选择器对象
lv_obj_t *colorwheel = lv_colorwheel_create(lv_scr_act(), NULL);// 设置颜色选择器的大小和位置
lv_obj_set_size(colorwheel, 200, 200);
lv_obj_set_pos(colorwheel, 50, 50);

在这个示例中,我们调用 lv_colorwheel_create() 函数来创建一个颜色选择器对象,并将其添加到屏幕的父对象(在这里是 lv_scr_act(),表示整个屏幕)中。然后,我们通过 lv_obj_set_size()lv_obj_set_pos() 函数来设置颜色选择器的大小和位置。

通过这样的方式,您可以在您的应用程序中方便地使用 LVGL 提供的颜色选择器来实现交互式的颜色选择。

3.代码实例

static lv_obj_t* obj;
static void event_cb(lv_event_t *e)
{lv_obj_t* target=lv_event_get_target(e);//lv_colorwheel_get_rgb获取颜色lv_obj_set_style_bg_color(obj,lv_colorwheel_get_rgb(target),LV_PART_MAIN);
}void my_lvgl(void)
{lv_obj_t* cw=lv_colorwheel_create(lv_scr_act(),true);   //创建色环模块lv_obj_set_style_arc_width(cw,30,LV_PART_MAIN);   //设置宽度lv_obj_center(cw);   //居中lv_colorwheel_set_rgb(cw,lv_color_hex(0xff0000));  //设置当前选中颜色lv_obj_add_event_cb(cw,event_cb,LV_EVENT_VALUE_CHANGED,NULL);//添加事件,值改变触发obj=lv_obj_create(lv_scr_act());   //创建基础对象lv_obj_center(obj);   //居中lv_obj_set_style_radius(obj,LV_RADIUS_CIRCLE,LV_PART_MAIN);  //圆角lv_colorwheel_set_mode(cw,LV_COLORWHEEL_MODE_HUE);  //设置为色相模式lv_colorwheel_set_mode_fixed(cw,true);   //固定色环模式
}---

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

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

相关文章

Flask框架开发学习笔记《5》简易服务器代码

Flask框架开发学习笔记《5》 Flask是使用python的后端,由于小程序需要后端开发,遂学习一下后端开发。 简易服务器代码 接口解析那一块很关键,学后端服务器这一块,感觉主要就是学习相应地址的接口怎么处理。 然后写清楚每个地址…

在centos 7 中安装配置Jdk、Tomcat、及Tomcat自启动

目录 一、安装配置Jdk 1.创建目录并上传文件 2.解压JDK压缩包 3.配置JDK环境变量 4.设置环境变量生效 二、安装配置Tomcat 1.上传Tomcat并解压 2.启停Tomcat 3.修改tomcat-user.xml配置 4.配置远程访问Tomcat 5.远程项目发布 三.Tomcat自启动配置 1.配置Tomcat自启…

各大厂急招鸿蒙开发员,争抢鸿蒙工程师

余承东宣布鸿蒙原生应用全面启动,华为开始了全面抛弃安卓的进程。 多家互联网公司也发布了鸿蒙OS的App开发工程师的岗位,开启了抢人大战。 有的企业开出了近百万的年薪招聘鸿蒙OS工程师,而华为甚至为鸿蒙OS资深架构师开出了100万-160万元的…

Kotlin快速入门系列10

Kotlin的委托 委托模式是常见的设计模式之一。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。与Java一样,Kotlin也支持委托模式,通过关键字by。 类委托 类的委托即一个类中定义的方…

Mysql-ReadView + MVCC-RR 与 RC

实验准备 创建脚本 CREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT,name varchar(16) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,age int(11) NULL DEFAULT NULL,addr varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,PRIMARY …

Red Panda Dev C++项目的基本操作

最近在Red Panda Dev C上面编写程序时发现,很多小伙伴都会创建项目。今天我带大家看看如何使用一个项目。 一、项目的创建 创建项目 首先,我们需要创建一个项目。 1、打开Red Panda Dev C。 2、点击 “文件[F]” → “新建[N]” → “项目[P]...”&…

精选70套前端数据可视化大屏

分享70款还不错的前端数据可视化大屏源码 其中包含行业:智慧社区、智慧物业、政务系统、智慧交通、智慧工程、智慧医疗、智慧金融银行等,全网最新、最多,最全、最酷、最炫大数据可视化模板。 你可以点击在线预览查看该源码资源的最终展示效果…

从零搭建Vue3 + Typescript + Pinia + Vite + Tailwind CSS + Element Plus开发脚手架

项目代码以上传至码云,项目地址:https://gitee.com/breezefaith/vue-ts-scaffold 文章目录 前言脚手架技术栈简介vue3TypeScriptPiniaTailwind CSSElement Plusvite 详细步骤Node.js安装创建以 typescript 开发的vue3工程集成Pinia安装pinia修改main.ts创…

正点原子--STM32定时器学习笔记(1)(更新中....)

F1系列基本定时器(TIM6 / TIM7) 我们的目标是通过TIM6基本定时器定时500ms,让LED0每隔500ms闪一下! 思路:使用定时器6,实现500ms产生一次定时器更新中断,在中断里执行“翻转LED0”。 定时器什…

docker容器之consul

一、consul解决了什么问题? 如果后端应用服务器集群节点数量很多,前端负载均衡器配置和管理会很麻烦的问题 (负载均衡器的节点配置条目数量会很多,后端节点的网络位置发生了变化还需要修改所有调用这些后端节点的负载均衡器配置等…

Android 12.0 应用中监听系统收到的通知

Android 12.0 通知简介https://blog.csdn.net/Smile_729day/article/details/135502031?spm1001.2014.3001.5502 1. 需求 在系统内置应用中或者在第三方应用中,获取Android系统收到的通知的内容. 2. NotificationListenerService 接口 Android 系统预留了专门的API, 即 No…

Github 2F2【解决】经验帖-PPHub登入

最近在做项目时,Github总是出问题,这是一经验贴 Github 2F2登入问题【无法登入】PPhub 2F2是为了安全,更好的生态 启用 2FA 二十八 (28) 天后,要在使用 GitHub.com 时 2FA 检查 物理安全密钥、Windows Hello 或面容 ID/触控 ID、SMS、GitHub Mobile 都可以作为 2F2 的工…

jenkins 下载插件sentry-cli失败 证书过期

现状 npm set ENTRYCLI_CDNURLhttps://cdn.npm.taobao.org/dist/sentry-cli npm set sentrycli_cdnurlhttps://cdn.npm.taobao.org/dist/sentry-cli 原因是npm原域名停止解析,在访问上面sentry-cli的cdn资源的时候 证书过期无法下载。 解决: 替换证书过期…

【C语言】通讯录实现(下)

目录 1.进阶通讯录特点(下) 2.实现步骤 (1)保存增加的联系人数据到文件中 (2)加载保存的联系人数据 3.完整C语言通讯录代码 (1)contact.h (2)test.c (3)contact.c 4.结语 1.…

MongoDB从入门到实战之MongoDB简介

前言 相信很多同学对MongoDB这个非关系型数据库都应该挺熟悉的,在一些高性能、动态扩缩容、高可用、海量数据存储、数据价值较低、高扩展的业务场景下MongoDB可能是我们的首选,因为MongoDB通常能让我们以更低的成本解决问题(包括学习、开发、…

嵌入式中Qt5.7.1添加支持openssl方法

1、openssl编译 版本:openssl-1.0.2g 一定要选对Qt版本对应的openssl版本,由于开始选的openssl版本不对,导致编译Qt时出现很多错误。 交叉编译 ./config no-asm shared --prefix/opt/Xilinx2018_zynq/zynq_openssl_1.0.2/ --cross-compile…

vivo发布2023 年度科技创新;阿里全新AI代理,可模拟人类操作手机

vivo 发布 2023 年度十大产品技术创新 近日,vivo 发布了「2023 年度科技创新」十大产品技术创新榜单,并将这些技术分为了 4 个板块。 「四大蓝科技」为 vivo 在去年推出的全新技术品牌,涵盖蓝晶芯片技术栈、蓝海续航系统、蓝心大模型、蓝河操…

2023年算法SAO-CNN-BiLSTM-ATTENTION回归预测(matlab)

2023年算法SAO-CNN-BiLSTM-ATTENTION回归预测(matlab) SAO-CNN-BiLSTM-Attention雪消融优化器优化卷积-长短期记忆神经网络结合注意力机制的数据回归预测 Matlab语言。 雪消融优化器( SAO) 是受自然界中雪的升华和融化行为的启发,开发了一种…

LeetCode 834. 树中距离之和

简单换根DP 其实就是看好变化量&#xff0c;然后让父亲更新儿子就好了&#xff5e; 上图2当根节点的时候&#xff0c;ans[2] ans[0] -sz[2]n-sz[2]; class Solution { public:vector<int> sumOfDistancesInTree(int n, vector<vector<int>>& edges) {v…

Java学习day26:和线程相关的Object类的方法、等待线程和唤醒线程(知识点详解)

声明&#xff1a;该专栏本人重新过一遍java知识点时候的笔记汇总&#xff0c;主要是每天的知识点题解&#xff0c;算是让自己巩固复习&#xff0c;也希望能给初学的朋友们一点帮助&#xff0c;大佬们不喜勿喷(抱拳了老铁&#xff01;) 往期回顾 Java学习day25&#xff1a;守护线…