开启辅助访问
设为首页
收藏本站
登录
立即注册
论坛首页
BBS
开发资料
样品购买
GitHub
邀请注册
技术博客
搜索
搜索
每日签到
本版
帖子
用户
物联网开发者社区-安信可论坛
»
论坛首页
›
开源硬件
›
小安派&M61教程合集
›
LVGL教程玩法
›
【小熊带你玩转小安派】添加一个播放按钮 ...
1
2
/ 2 页
下一页
返回列表
发新帖
【小熊带你玩转小安派】添加一个播放按钮
[复制链接]
1742
|
10
|
2023-9-18 23:13:40
|
显示全部楼层
|
阅读模式
本系列图文连载,第7话
首先祝贺我找到了工作!!!我上岸了!!!
今天拼了一整天积木,晚上逛完街才想起来,没更教程,匆匆水一期
正文开始:
登录/注册后可看大图
上一话教程,我们做了一个简陋的天空人时钟,今天我们来学习代码,给天空人动画添加一个播放按钮
本期教程必须学会,不然后面的教程就看不懂了(虽然我还不知道写啥)
推荐学习本节前,先看这个视频
https://www.bilibili.com/video/BV1LU4y1q7vd
我们使用GUI-Guider生成代码时,会生成两个文件夹
generated 文件夹中的代码不能乱改,咱们这一节想实现通过按钮点击开始播放太空人动画,像这样自定义功能,需要修改custom文件夹中的custom.c
根据之前的教程,设计下界面
因为我也不会写lvgl代码,下面使用一个取巧的办法获取代码
1. 首先,我们来看看哪个函数实现图片播放
将动图设置成自动播放(比较一下如果不自动播放,生成的代码)
会发现在generated —— setup_scr_screen.c 初始化动图控件的代码中多出来一行
lv_animimg_start(ui->screen_animimg_1); //从函数名就能看出是开始播放
复制代码
2. 然后,我们来看看如何点击按钮触发函数
将按钮绑定点击事件,绑定到动图的显隐功能上
生成一下代码,会在generated —— events_init.c 里生成按钮点击的代码(敲重点!!!这里就是我们想要的)
生成的这些代码,仅需要改两行,就能实现播放动画的功能
<blockquote>#include "events_init.h"
复制代码
我们找到工程文件夹里的custom文件夹中的custom.c
将上述代码无脑复制进来,删掉
lv_obj_add_flag(guider_ui.screen_animimg_1, LV_OBJ_FLAG_HIDDEN); 这一行
尝试一下将
lv_animimg_start(ui->screen_animimg_1); 复制到这里
将按钮的绑定删掉,将动图的自动播放关掉
运行一下模拟器
不出意外的就出意外了,会报错!
报错说 没有 ui 这个参数传进来,我们学习删掉的这行
lv_obj_add_flag(guider_ui.screen_animimg_1, LV_OBJ_FLAG_HIDDEN);
的写法
将
lv_animimg_start(ui->screen_animimg_1); 修改成
lv_animimg_start(
guider_ui.screen_animimg_1
);
将
void events_init_screen(lv_ui *ui)函数删掉,把
lv_obj_add_event_cb(ui->screen_btn_1, screen_btn_1_event_handler, LV_EVENT_ALL, NULL); 粘贴到
void custom_init(lv_ui *ui)函数里
运行一下模拟器,就不报错了,点击按钮实现播放动图!
修改后的
custom.c
/*********************
* INCLUDES
*********************/
#include <stdio.h>
#include "lvgl.h"
#include "custom.h"
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/**
* Create a demo application
*/
#include "events_init.h"
#include <stdio.h>
#include "lvgl.h"
static void screen_btn_1_event_handler (lv_event_t *e)
{
lv_event_code_t code = lv_event_get_code(e);
switch (code) {
case LV_EVENT_CLICKED:
{
lv_animimg_start(guider_ui.screen_animimg_1);
break;
}
default:
break;
}
}
void custom_init(lv_ui *ui)
{
/* Add your codes here */
lv_obj_add_event_cb(ui->screen_btn_1, screen_btn_1_event_handler, LV_EVENT_ALL, NULL);
}
复制代码
本期教程结束,是不是很简单呀
后面的教程我们将接触更多lvgl代码,各位同学做好心理准备哦
本帖被以下淘专辑推荐:
·
LVGL
|
主题: 19, 订阅: 3
知足常乐
回复
使用道具
举报
WangChong
|
2023-9-18 23:41:44
|
显示全部楼层
学习
回复
使用道具
举报
ifwz1729
|
2023-9-19 00:10:26
|
显示全部楼层
发个批量改图片引用库的小程序
https://ifwz.lanzouw.com/it20i18zwy9a
知足常乐
回复
支持
反对
使用道具
举报
496199544
|
2023-9-19 08:45:39
来自手机
|
显示全部楼层
学习
回复
使用道具
举报
jkernet
|
2023-9-19 09:14:03
|
显示全部楼层
学习了
回复
使用道具
举报
ckdsx.cn
|
2023-9-19 10:54:26
|
显示全部楼层
找一天实践一下!
回复
支持
反对
使用道具
举报
18350766600@139
|
2023-9-19 12:23:37
|
显示全部楼层
学习
回复
使用道具
举报
开发板
|
2023-9-19 14:19:42
|
显示全部楼层
大佬
回复
使用道具
举报
lsrly
|
2023-9-19 14:39:36
|
显示全部楼层
学习
好好学习,努力挣钱,专心
回复
使用道具
举报
王乐乐
|
2023-9-20 22:01:14
|
显示全部楼层
打卡学习
回复
使用道具
举报
下一页 »
1
2
/ 2 页
下一页
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
手机登录
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
ifwz1729
9
主题
43
回帖
910
积分
高级会员
高级会员, 积分 910, 距离下一级还需 90 积分
高级会员, 积分 910, 距离下一级还需 90 积分
积分
910
加好友
发消息
回复楼主
返回列表
小安派&M61零基础开发教程(官方)
小安派&M61环境搭建、编译烧录教程
Ai-M61-Kit点灯教程
Ai-M61-Kit外设移植教程
小安派&M61基本系统教程
小安派&M61 DIY作品
LVGL教程玩法
问题汇总
图文推荐
【板子申请流程】新进来的同学请看这里-活动已停
2023-11-08
【中奖公告】申请Ai-M61-32S-kit的同学看过来!
2024-04-29
开发板申请 | Ai-M61-32S高性能开发板来啦,共赠送200个!-活动
2024-04-18
我也领到官方免费送的AiPi-Eyes-S1开发板啦!!!
2023-09-26
【轻松上手】小安派跑个超级玛丽
2023-09-27
热门排行
1
【板子申请流程】新进来的同学请看这里-活
2
安信可社区一周年狂欢派对&抽奖盖楼活动开
3
我也领到官方免费送的AiPi-Eyes-S1开发板啦
4
【中奖公告】申请Ai-M61-32S-kit的同学看过
5
优质文章有赏!现金红包+开发板无限送,冲
6
【官方公告】关于板子申请发帖争议解释
7
【轻松上手】小安派跑个超级玛丽
8
开发板申请 | Ai-M61-32S高性能开发板来啦
9
【教程】社区发帖教程指引(尤其是图片上传
10
【电子DIY作品】+人体存在感应器+WB2+RD03