使用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);

本文章由威三学社出品

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

相关推荐
雨中飘荡的记忆14 小时前
ElasticJob分布式调度从入门到实战
java·后端
冬奇Lab17 小时前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿19 小时前
Android MediaPlayer 笔记
android
Jony_20 小时前
Android 启动优化方案
android
阿巴斯甜20 小时前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇20 小时前
AOSP15 Input专题InputReader源码分析
android
考虑考虑1 天前
JDK25模块导入声明
java·后端·java ee
_小马快跑_1 天前
Java 的 8 大基本数据类型:为何是不可或缺的设计?
java
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android
_小马快跑_1 天前
Kotlin | 从SparseArray、ArrayMap的set操作符看类型检查的不同
android