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

这一期讲解的控件是条形码,条形码在lvgl中是没有具体控件的需要用户去自定义组件,这里使用code128并由fhunleth提供。

(1)GUI-guider中使用

在控件列表中拖拽条形码控件,将控件拖入到屏幕中然后点击条形码在右侧属性面板中可以调试参数。

(2)用法

1.在lv_conf.h中启用LV_USE_BARCODE。

2.使用lv_barcode_create()创建条形码对象,使用lv_barcode_update()生成条形码。

  1. 调用 lv_barcode_set_scale() 调整缩放,调用 lv_barcode_set_dark_color() 和 lv_barcode_set_light_color() 调整颜色,调用 lv_barcode_set_direction() 设置显示方向,再次调用 lv_barcode_update() 重新生成条形码。

(3)使用提示

• 最好不要手动设置条形码的宽度,因为当 Widget 的宽度小于条形码的宽度时,由于截断,显示会不完整。

• 缩放调整只能是整数倍,例如,lv_barcode_set_scale(barcode, 2) 意味着 2x 缩放。

• 方向调整可以是 LV_DIR_HOR 或 LV_DIR_VER。

(4)代码

//Write style for screen_1, Part: LV_PART_MAIN, State: LV_STATE_DEFAULT.

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_barcode_1

//创建条形码对象

ui->screen_1_barcode_1 = lv_barcode_create(ui->screen_1);

//设置条形码尺寸

lv_obj_set_height(ui->screen_1_barcode_1, 50);

//设置缩放比例为1

lv_barcode_set_scale(ui->screen_1_barcode_1, 1);

//设置深色条颜色

lv_barcode_set_dark_color(ui->screen_1_barcode_1, lv_color_hex(0x2C3224));

//设置浅色背景色

lv_barcode_set_light_color(ui->screen_1_barcode_1, lv_color_hex(0xffffff));

//更新条形码数据并显示

const char * screen_1_barcode_1_data = "www.baidu.com";

lv_barcode_update(ui->screen_1_barcode_1, screen_1_barcode_1_data);

//确认位置和高度

lv_obj_set_pos(ui->screen_1_barcode_1, 136, 208);

lv_obj_set_height(ui->screen_1_barcode_1, 50);

本文章由威三学社出品

对课程感兴趣可以私信联系

相关推荐
Hx_Ma169 小时前
SpringMVC框架提供的转发和重定向
java·开发语言·servlet
期待のcode10 小时前
原子操作类LongAdder
java·开发语言
舟舟亢亢11 小时前
Java集合笔记总结
java·笔记
小酒窝.11 小时前
【多线程】多线程打印ABC
java
2601_9498333911 小时前
flutter_for_openharmony口腔护理app实战+预约管理实现
android·javascript·flutter
乡野码圣11 小时前
【RK3588 Android12】RCU机制
java·jvm·数据库
JAVA+C语言11 小时前
如何优化 Java 多主机通信的性能?
java·开发语言·php
编程彩机13 小时前
互联网大厂Java面试:从分布式架构到大数据场景解析
java·大数据·微服务·spark·kafka·分布式事务·分布式架构
小酒窝.13 小时前
【多线程】多线程打印1~100
java·多线程
君爱学习13 小时前
基于SpringBoot的选课调查系统
java