找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 422|回复: 12
打印 上一主题 下一主题
收起左侧

滑动条UI上如何保存最终的数据?

  [复制链接]
跳转到指定楼层
楼主

大家好,

我的项目上有一个3.5寸的触摸屏,触摸屏上做了一个图形UI,也就是滑条,如下,




这个滑条主要用来设置一个变量的值,从左往右滑动时,滑条显示从0到100自增,最大100.
假设这个变量是:
unsigned char speed_val=0;

现在要把最终设定的值保存起来,比如最终滑到50,要把50这个值写进flash保存,也就是保存最后一个值。
我之前没用图形UI时,用的保存方法是,再定义一个变量的副本,
unsigned char speed_val_temp=0;

不停的对比speed_valspeed_val_temp的值,当两者值不一样时,说明滑条的值发生了变化,就把speed_val保存进flash,大概这样,

if(speed_val != speed_val_temp)
{
     speed_val_temp=speed_val;
     write_data_to_flash(speed_val_temp);
}

由于之前用户操作不频繁,所以用这种方法。
现在用了滑条,假设需要保存50这个值,用户从0滑到50,中间经历了49个值,这49个值都会被写进flash,导致写flash太频繁,而这中间的49个值也并不是我需要的,我只需要保存50这个值。但现在滑条的问题是,我不知道用户什么时候停止滑动,用户最终滑到什么值。

有人说可以在UI上加一个保存按钮,滑到最终值,点一下保存。这个确实不错,但是为了UI的好看和简洁性,最终没有加,而且我看好多别人的滑条上面也没有保存按钮啊,他们是怎么实现保存数据的?

希望大神能赐教一些思路,谢谢!


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1108479 发表于 2024-3-23 09:58 | 显示全部楼层
c8t6 发表于 2024-2-27 11:09
其实你也可以,不急着保存。你可以先把你滑动条的值先临时存放。当你在操作其他的功能是就可以把前面操作的 ...

你的这种思路我也想到过,但是会有一个问题就是,如果用户滑到一个值后马上关机,这个数据就丢失了!如果不发生马上关机这种意外事件,你这种思路是不错的
回复

使用道具 举报

板凳
ID:1108479 发表于 2024-3-23 10:01 | 显示全部楼层
chxelc 发表于 2024-2-27 10:40
滑动条有没有事件驱动?如果有,在值变化的事件中保存就可以了。如果没有,用定时器,延时一段时间再读取滑 ...

有事件驱动,不过在值变化的事件中保存,是不是和我上面讲的一样了,就是从0滑到50,这中间经历的49个值都会被保存?而我只需要50这个值而已。

我在想是不是用释放这个事件比较好一些,结合上面兄弟的一些建议,在手指释放的时候保存应该会好一些,我的滑动条是有释放这个事件的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表