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

使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十讲)

这一期讲解的控件是二维码,二维码是一种基于矩阵排列的二维条码技术,它以矩阵的形式存储数据,与传统的条形码相比,二维码可以存储更多的信息,并且能够处理数字、字母和汉字等多种数据类型。二维码由寻像图形、定界符、数据区和校验码等部分组成。其中,寻像图形用于帮助扫描设备定位二维码的边缘,定界符明确二维码的大小和编码区域,数据区则包含了实际的编码信息,校验码则用于错误检测和纠正。
在lvgl中生成二维码需要使用 nayuki 的 QR-Code-generator 码生成器。
以下是在guider的平台使用:

1.lvgl中的二维码使用流程

(1)在 lv_conf.h 中启用 LV_USE_QRCODE 。
(2)函数 lv_qrcode_create() 创建二维码对象,函数 lv_qrcode_update() 以生成二维码。
(3)使用 lv_qrcode_set_size() 和 lv_qrcode_set_dark_color() 或 lv_qrcode_set_light_color()函数修改尺寸和颜色,最后使用 lv_qrcode_update() 以重新生成(刷新)新的二维码。

2.代码
//Write style for screen_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
//设置screen1背景样式 完全不透明 白色背景 无渐变效果
lv_obj_set_style_bg_opa(ui->screen_1, 255, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_bg_color(ui->screen_1, lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_bg_grad_dir(ui->screen_1, LV_GRAD_DIR_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);

//Write codes screen_1_lottie_1

ui->screen_1_lottie_1 = lv_rlottie_create_from_raw(ui->screen_1, 338, 282, “”);
//设置位置以及大小
lv_obj_set_pos(ui->screen_1_lottie_1, 74, 78);
lv_obj_set_size(ui->screen_1_lottie_1, 338, 282);

//Write style for screen_1_lottie_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.
//设置背景透明度
lv_obj_set_style_bg_opa(ui->screen_1_lottie_1, 0, LV_PART_MAIN|LV_STATE_DEFAULT);

//Write codes screen_1_qrcode_1
//创建二维码组件
ui->screen_1_qrcode_1 = lv_qrcode_create(ui->screen_1, 300, lv_color_hex(0x2C3224), lv_color_hex(0xffffff));
//设置二维码内容
const char * screen_1_qrcode_1_data = “https://www.baidu.com/”;
lv_qrcode_update(ui->screen_1_qrcode_1, screen_1_qrcode_1_data, strlen(screen_1_qrcode_1_data));
//设置位置以及大小
lv_obj_set_pos(ui->screen_1_qrcode_1, 87, 92);
lv_obj_set_size(ui->screen_1_qrcode_1, 300, 300);
本文章由威三学社出品
对课程感兴趣可以私信联系

http://www.cnnetsun.cn/news/91685.html

相关文章:

  • 热销榜单:2025年高口碑数字人推荐,解决你的选择难题!
  • 应“双碳”考核!安科瑞通信机房能耗监测方案,让PUE管控精准落地
  • 1天净流入10亿!A500ETF南方凭什么成为布局中国核心资产的优选?
  • Android 基础入门教程之RelativeLayout(相对布局)
  • 基于微信小程序的跑腿系统的设计与实现毕业设计项目源码
  • 基于SpringBoot的社区老年人健康知识阅读分享管理系统毕业设计项目源码
  • MySQL迁移达梦数据库,Quartz报错“无效的表或视图名”
  • Dify入门:搭建一个文件翻译智能体
  • 基于SpringBoot的金丰旺零售商经营平台系统毕业设计项目源码
  • Git:分布式版本控制的哲学、理论与创新
  • 农业产量预测的终极方案:R语言中XGBoost+随机森林+ARIMA融合技巧
  • 为什么90%的团队都选错了Dify排序算法?真相在这里!
  • 揭秘云原生Agent网络难题:如何高效配置Docker容器通信
  • 基于Python的电商用户购买行为数据分析系统设计与实现(源代码+文档+PPT+调试+讲解)
  • 为什么你的Dify模型加载总失败?这3个坑90%的人都踩过
  • ClaudeCode 实战指南(五):SubAgent 深度解析与专家团队构建
  • 【干货收藏】从零开始构建知识图谱:9大核心技术详解!
  • 智能算法与边缘计算融合:驱动下一代实时决策系统的技术范式革新
  • 为什么顶尖团队都在用Dify 1.7.0做音频转换?真相令人震惊
  • 【Dify 1.7.0音频转文字黑科技】:3大核心升级揭秘,效率提升90%的秘诀
  • 如何30分钟完成一个AI驱动的工作流?Dify可视化编辑实操揭秘
  • 构建失败率降低80%?量子计算镜像缓存优化,你不得不看的关键步骤
  • 从0到1搭系统,这5款免费低代码平台帮你省时间
  • 【私有化Dify备份策略全解析】:掌握企业级数据安全的5大核心步骤
  • UnityXR 在PC端HTCVive或者其它头盔设备中左右眼一个正常一个不正常解决办法
  • 浅识:GaussDB的WAL日志
  • 【空间转录组功能富集分析全攻略】:掌握R语言高效解析空间基因表达的5大核心技巧
  • 进程相关的函数
  • 12 款 .NET PDF库,到底该选哪个库?
  • 从入门到精通,R Shiny多用户权限管理系统搭建全记录