使用TouchGFX开发STM32界面应用之入门篇(三)-- 多屏呈现与MVP框架(3)

使用TouchGFX开发STM32界面应用之入门篇(三)-- 多屏呈现与MVP框架(3),第1张

【注:这是《TouchGFX入门篇(三)-- 多屏呈现与MVP框架》文章的第二部分的续篇,之前的部分请 看这里 】

之前我们已经完成了2个Screen的创建,以及他们之间的相互切换和数据交换。下面继续实现时钟的走时和圆弧的动画。

为了让时间显示不断变化,一个通常的想法是:利用STM32的定时器。而在touchgfx中,实现这个功能变得更加简单:touchgfx直接提供了一个“滴答”函数(以及自动运行这个功能的机制)---- handleTickEvent()。限于文章篇幅,关于这个函数的具体解释请见touchgfx的API说明手册,这里直接展示如何应用他:

上图中在Screen2View.hpp中添加了 handleTickEvent() 函数声明和一个变量 tickCount (记录tick的数值,逢60进位)。然后在Screen2View.cpp中实现handleTickEvent() :

模拟器运行效果如下:

还需要最后一步:处理圆弧,让他动起来!圆弧动画的原理:定时更新圆弧的起始位置和结束位置。增加2个变量addStart、addEnd,分别控制首末位置的“增量”,addStart==2、addEnd==1时,起始位置变得快、结束位置变得慢,看起来就是圆弧长度在缩短;反之,圆弧长度则不断变长(不理解这个算法没关系,看下面图示):

细心的你可能已经看到:设置页面里设置的是分钟,但运行页面里分钟却是按秒变化的 ---- 这个bug留给你修改吧。

最后,烧写到目标板上跑跑看!(本讲完毕)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11410196.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存