著录项信息
专利名称 | 一种悬浮键移动方法和装置 |
申请号 | CN201510536935.6 | 申请日期 | 2015-08-27 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2016-05-04 | 公开/公告号 | CN105549762A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F3/0346 | IPC分类号 | G;0;6;F;3;/;0;3;4;6;;;G;0;6;F;3;/;0;4;8;4查看分类表>
|
申请人 | 宇龙计算机通信科技(深圳)有限公司 | 申请人地址 | 广东省深圳市南山区高新技术产业园(北区)梦溪道2号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 宇龙计算机通信科技(深圳)有限公司 | 当前权利人 | 宇龙计算机通信科技(深圳)有限公司 |
发明人 | 林荣辉;黄习昌 |
代理机构 | 广州三环专利商标代理有限公司 | 代理人 | 郝传鑫;熊永强 |
摘要
本发明实施例公开了一种悬浮键移动方法,所述方法包括:通过重力传感器获取终端的重力加速度;获取所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度参数;根据所述加速度参数在所述终端的显示屏幕中移动悬浮键。本发明还公开了一种悬浮键移动装置。采用本发明,可以实现根据终端重力加速度的变化来移动悬浮键,进而优化用户在单手握持终端时对悬浮键的操作。
1.一种悬浮键移动方法,其特征在于,所述方法包括:
通过重力传感器获取终端的重力加速度;
获取所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度参数,所述加速度参数包括重力加速度的大小以及重力加速度的方向;
根据所述加速度参数在所述终端的显示屏幕中移动悬浮键,具体为:根据所述重力加速度的大小以及重力加速度的方向移动悬浮键,其中,所述悬浮键的移动方向和移动合加速度的大小是根据所述悬浮键移动的加速度在X坐标和Y坐标上的方向和大小联合确定的;
其中,所述方法还包括:
当检测到所述悬浮键移动到与显示屏幕边缘之间的距离达到预设的第一距离阈值时,根据所述悬浮键与所述显示屏幕边缘之间的距离和预设的PID算法公式计算速度反馈值;
根据所述加速度参数和所述速度反馈值确定所述悬浮键的移动速度;
根据所述悬浮键的移动速度在所述终端的显示屏幕中移动所述悬浮键。
2.如权利要求1所述的悬浮键移动方法,其特征在于,所述根据所述加速度参数在所述终端的显示屏幕中移动悬浮键包括:
将所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度作为所述悬浮键在显示屏幕上移动的加速度。
3.如权利要求1所述的悬浮键移动方法,其特征在于,所述根据所述悬浮键与所述显示屏幕边缘之间的距离和预设的PID算法公式计算速度反馈值包括:
采集所述悬浮键与所述终端显示屏幕边缘之间的距离;
根据PID算法公式Δ={Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]}计算所述速度反馈值,其中,e(k)为第k次采集的所述悬浮键与所述终端显示屏幕边缘之间的距离,Kp、Ki、Kd为预设的调整系数。
4.如权利要求1所述的悬浮键移动方法,其特征在于,所述方法还包括:
当检测到所述悬浮键移动到与所述终端显示屏幕边缘之间的距离小于预设的第二距离阈值时,停止移动所述悬浮键。
5.如权利要求1所述的悬浮键移动方法,其特征在于,所述根据所述加速度参数在所述终端的显示屏幕中移动悬浮键之前还包括:
接收悬浮键移动开启指令。
6.一种悬浮键移动装置,其特征在于,所述装置包括:
重力获取模块,用于通过重力传感器获取终端的重力加速度;
加速度获取模块,用于获取所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度参数,所述加速度参数包括重力加速度的大小以及重力加速度的方向;
第一移动模块,用于根据所述加速度参数在所述终端的显示屏幕中移动悬浮键,具体为:根据所述重力加速度的大小以及重力加速度的方向移动悬浮键,其中,所述悬浮键的移动方向和移动合加速度的大小是根据所述悬浮键移动的加速度在X坐标和Y坐标上的方向和大小联合确定的;
其中,所述装置还包括:
反馈模块,用于当检测到所述悬浮键移动到与显示屏幕边缘之间的距离达到预设的第一距离阈值时,根据所述悬浮键与所述显示屏幕边缘之间的距离和预设的PID算法公式计算速度反馈值;
速度模块,用于根据所述加速度参数和所述速度反馈值确定所述悬浮键的移动速度;
第二移动模块,用于根据所述悬浮键的移动速度在所述终端的显示屏幕中移动所述悬浮键。
7.如权利要求6所述的悬浮键移动装置,其特征在于,所述第一移动模块具体用于:
将所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度作为所述悬浮键在显示屏幕上移动的加速度。
8.如权利要求6所述的悬浮键移动装置,其特征在于,所述反馈模块包括:
采集单元,用于采集所述悬浮键与所述终端显示屏幕边缘之间的距离;
计算单元,用于根据PID算法公式Δ={Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]}计算所述速度反馈值,其中,e(k)为第k次采集的所述悬浮键与所述终端显示屏幕边缘之间的距离,Kp、Ki、Kd为预设的调整系数。
9.如权利要求6所述的悬浮键移动装置,其特征在于,所述装置还包括:
停止模块,用于当检测到所述悬浮键移动到与所述终端显示屏幕边缘之间的距离小于预设的第二距离阈值时,停止移动所述悬浮键。
10.如权利要求6所述的悬浮键移动装置,其特征在于,所述装置还包括:
指令模块,用于接收悬浮键移动开启指令。
一种悬浮键移动方法和装置\n技术领域\n[0001] 本发明涉及电子技术领域,尤其涉及一种悬浮键移动方法和装置。\n背景技术\n[0002] 由于电子终端的功能越来越多,很多功能按键寻找起来比较麻烦,因此电子终端通常通过一个集合多种功能按键的悬浮在显示屏幕上的按键来方便用户的操作。但是,随着电子终端的不断发展,电子终端的显示屏幕变得越来越大,在用户握持电子终端时,就会出现握持手无法触及的显示屏幕范围,例如,用户右手单手握持一个大屏手机,如果用户想用右手点击大屏手机显示屏幕的左边区域的悬浮键就会非常的吃力,甚至根本够不到。\n发明内容\n[0003] 本发明实施例所要解决的技术问题在于,提供一种悬浮键移动方法和装置,可以根据终端重力加速度的变化来移动悬浮键,进而优化用户在单手握持终端时对悬浮键的操作。\n[0004] 为了解决上述问题,本发明实施例提供了一种悬浮键移动方法,包括:\n[0005] 通过重力传感器获取终端的重力加速度;\n[0006] 获取所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度参数;\n[0007] 根据所述加速度参数在所述终端的显示屏幕中移动悬浮键。\n[0008] 相应地,本发明实施例还提供了一种装置,包括:\n[0009] 重力获取模块,用于通过重力传感器获取终端的重力加速度;\n[0010] 加速度获取模块,用于获取所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度参数;\n[0011] 第一移动模块,用于根据所述加速度参数在所述终端的显示屏幕中移动悬浮键。\n[0012] 本发明实施例通过重力传感器获取终端的重力加速度,然后获取所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度参数,再根据所述加速度参数在所述终端的显示屏幕中移动悬浮键,实现了根据终端重力加速度的变化来移动悬浮键,进而优化用户在单手握持终端时对悬浮键的操作。\n附图说明\n[0013] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0014] 图1是本发明实施例中一种悬浮键移动方法的流程示意图;\n[0015] 图2是本发明另一实施例中悬浮键移动方法的流程示意图;\n[0016] 图3是本发明实施例中一种悬浮键移动装置的组成结构示意图;\n[0017] 图4是本发明实施例中图3的计算模块组成结构示意图;\n[0018] 图5a是本发明实施例中一种基准坐标系的示意图;\n[0019] 图5b是本发明实施例中另一种基准坐标系的示意图;\n[0020] 图6是本发明实施例中一种基准坐标系上投影的加速度参数的示意图;\n[0021] 图7是本发明实施例中一种基准坐标系上悬浮键移动方向的示意图;\n[0022] 图8是本发明实施例中一种悬浮键与显示屏幕边缘之间的距离的示意图。\n具体实施方式\n[0023] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0024] 图1是本发明实施例中一种悬浮键移动方法的流程示意图,本方法流程可以由悬浮键移动装置实施,所述悬浮键移动装置可以为用户终端或运行在用户终端的软件程序,所述用户终端可以包括手机、笔记本电脑、平板电脑、车载电脑、POS(Point Of Sales,销售点)机等。如图所示所述方法至少包括:\n[0025] 步骤S101,通过重力传感器获取终端的重力加速度。\n[0026] 具体的,终端内部具有重力传感器芯片,重力传感器芯片可以通过终端内部由于加速度造成的晶体形变而产生的电压来获知终端的重力加速度,这里重力加速度包括重力加速度的大小以及重力加速度的方向。具体实施中,终端可以在用户触发悬浮键移动开启指令时,从重力传感器中获取终端的重力加速度,也可以定时从重力传感器中获取终端的重力加速度,当接收到用户触发悬浮键移动开启指令时,再在步骤S102中对获取到的重力加速度进行分析,这里不作限定。\n[0027] 步骤S102,获取所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度参数。\n[0028] 具体的,基准坐标系为终端预先设定的以终端的显示屏幕为基准的X-Y坐标系,可以是如图5a或者图5b所示的坐标系,也可以是其他形式的在终端的显示屏幕上的形成的X-Y坐标系。利用步骤S101获取到的重力加速度,可以将其投影在基准坐标系上,从而获得基准坐标系中的加速度参数,这里加速度参数包括投影在X坐标和Y坐标上的加速度,加速度又包括X坐标和Y坐标上加速度分量的大小和方向。例如,如图6所示,重力加速度在终端显示屏幕的基准坐标系上投影出X坐标和Y坐标上的加速度的大小分别为a1=4m/s2和a2=\n3m/s2,加速度的方向分别为X坐标方向和Y坐标的正方向。\n[0029] 步骤S103,根据所述加速度参数在所述终端的显示屏幕中移动悬浮键。\n[0030] 具体的,终端可以将步骤S102中获取的重力加速度在终端显示屏幕的基准坐标系上投影的加速度作为悬浮键在显示屏幕上移动的加速度,然后根据该加速度的方向和大小移动悬浮键;也可以先对重力加速度在终端显示屏幕的基准坐标系上投影的加速度经过预设的数学变换,之后将经过数学变换得到的加速度作为悬浮键在显示屏幕上移动的加速度,再根据该加速度的大小和方向移动悬浮键。例如,如图6所示,重力加速度在终端显示屏幕的基准坐标系上投影出X坐标和Y坐标上的加速度的大小分别为a1=4m/s2和a2=3m/s2,可以将加速度a1和a2直接作为悬浮键在显示屏幕上移动的加速度来移动悬浮键,也可以将加速度a1和a2与预设的数值10的比值a11=0.4m/s2和a22=0.3m/s2作为悬浮键在显示屏幕上移动的加速度来移动悬浮键。\n[0031] 在具体的移动过程中,悬浮键的移动方向和移动合加速度的大小是根据悬浮键移动的加速度在X坐标和Y坐标上的方向和大小联合确定的。举例来说,假设悬浮键的移动加速度在X坐标和Y坐标上分别为a3=4m/s2和a4=3m/s2,方向如图7所示,那么悬浮键的移动方向即为图中a5所示的方向,且移动合加速度 那么终端就\n可以按照a5的方向,以a5的数值5m/s2作为加速度移动悬浮键。\n[0032] 本发明实施例通过重力传感器获取终端的重力加速度,然后获取所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度参数,再根据所述加速度参数在所述终端的显示屏幕中移动悬浮键,实现了根据终端重力加速度的变化来移动悬浮键,进而优化用户在单手握持终端时对悬浮键的操作。\n[0033] 图2是本发明另一实施例中悬浮键移动方法的流程示意图,如图所示所述方法至少包括:\n[0034] 步骤S201,接收悬浮键移动开启指令。\n[0035] 具体的,在悬浮键在默认情况下是不会根据终端获取的重力加速度进行移动的,通常悬浮键是处于固定位置或者可以由用户进行拖动等操作来改变其位置。因此,悬浮键移动功能需要通过悬浮键移动开启指令来触发。具体实施中,悬浮键移动开启指令可以是点击终端预设在工具栏中的一个开关图标、按下终端硬件装置中的一个按钮或者用户在终端中输入的一种开启手势等等操作。当终端接收到用户输入的悬浮键移动开启指令后,才可以根据后续的步骤移动悬浮键。\n[0036] 步骤S202,通过重力传感器获取终端的重力加速度。\n[0037] 具体的,终端内部具有重力传感器芯片,重力传感器芯片可以通过终端内部由于加速度造成的晶体形变而产生的电压来获知终端的重力加速度,这里重力加速度包括重力加速度的大小以及重力加速度的方向。具体实施中,终端在接收到悬浮键移动开启指令后,就可以从重力传感器中获取终端的重力加速度。\n[0038] 步骤S203,获取所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度参数。\n[0039] 具体的,基准坐标系为终端预先设定的以终端的显示屏幕为基准的X-Y坐标系,可以是如图5a或者图5b所示的坐标系,也可以是其他形式的在终端的显示屏幕上的形成的X-Y坐标系。利用步骤S202获取到的重力加速度后,可以将其投影在基准坐标系上,从而获得基准坐标系中的加速度参数,这里加速度参数包括投影在X坐标和Y坐标上的加速度,加速度又包括X坐标和Y坐标上加速度分量的大小和方向。例如,如图6所示,重力加速度在终端显示屏幕的基准坐标系上投影出X坐标和Y坐标上的加速度的大小分别为a1=4m/s2和a2=\n3m/s2,加速度的方向分别为X坐标方向和Y坐标的正方向。\n[0040] 步骤S204,根据所述加速度参数在所述终端的显示屏幕中移动悬浮键。\n[0041] 具体的,终端可以将步骤S203中获取的重力加速度在终端显示屏幕的基准坐标系上投影的加速度作为悬浮键在显示屏幕上移动的加速度,然后根据该加速度的方向和大小移动悬浮键;也可以先对重力加速度在终端显示屏幕的基准坐标系上投影的加速度经过预设的数学变换,之后将经过数学变换得到的加速度作为悬浮键在显示屏幕上移动的加速度,再根据该加速度的大小和方向移动悬浮键。例如,如图6所示,重力加速度在终端显示屏幕的基准坐标系上投影出X坐标和Y坐标上的加速度的大小分别为a1=4m/s2和a2=3m/s2,可以将加速度a1和a2直接作为悬浮键在显示屏幕上移动的加速度来移动悬浮键,也可以将加速度a1和a2与预设的数值10的比值a11=0.4m/s2和a22=0.3m/s2作为悬浮键在显示屏幕上移动的加速度来移动悬浮键。\n[0042] 在具体的移动过程中,悬浮键的移动方向和移动合加速度的大小是根据悬浮键移动的加速度在X坐标和Y坐标上的方向和大小联合确定的。举例来说,假设悬浮键的移动加速度在X坐标和Y坐标上分别为a3=4m/s2和a4=3m/s2,方向如图7所示,那么悬浮键的移动方向即为图中a5所示的方向,且移动合加速度 那么终端就\n可以按照a5的方向,以a5的数值5m/s2作为加速度移动悬浮键。\n[0043] 步骤S205,当检测到所述悬浮键移动到与显示屏幕边缘之间的距离达到预设的第一距离阈值时,根据所述悬浮键与所述显示屏幕边缘之间的距离和预设的PID算法公式计算速度反馈值。\n[0044] 具体的,终端可以不断的定时获取悬浮键的移动位置,当检测到悬浮键移动到与显示屏幕边缘之间的距离达到预设的第一距离阈值时,则改变原来的悬浮键的移动速度,通过PID算法(Proportional Integration Differential,比例、积分、微分)的速度反馈值对悬浮键的移动进行减速。\n[0045] 具体来说,第一距离阈值可以设定为悬浮键与其在初始静止时的显示屏幕边缘之间的距离的阈值,也可以设定为悬浮键与其移动方向所指向的屏幕边缘之间的距离的阈值。例如,如图8所示,虚线圆形为悬浮键的初始位置,之后移动到实现圆形所处的位置,第一距离阈值可以是悬浮键与其在初始静止时的显示屏幕边缘之间的距离d1,也可以是悬浮键与其移动方向所指向的屏幕边缘之间的距离d2。当检测到悬浮键移动到与显示屏幕边缘之间的距离达到预设的第一距离阈值后,可以开始采集悬浮键与终端显示屏幕边缘之间的距离。具体实施中,悬浮键与终端显示屏幕边缘之间的距离的采集可以设定采集时间区间进行定时采集,也可以限定次数进行有规律的采集,还可以不限制次数和时间的随机采集;\n这里,采集的悬浮键与终端显示屏幕边缘之间的距离同样可以是图8中所示的d1或者d2中的一种。\n[0046] 进一步地,将采集到的悬浮键与终端显示屏幕边缘之间的距离中任意连续的三次采集距离作为第k、k-1和k-2次采集的所述悬浮键与所述终端显示屏幕边缘之间的距离,即e(k)、e(k-1)和e(k-2),再将这三个值代入PID算法公式Δ={Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]}中进行计算,从而获得悬浮键移动的速度反馈值。需要说明的是,Kp、Ki、Kd为预设的调整系数。\n[0047] 步骤S206,根据所述加速度参数和所述速度反馈值确定所述悬浮键的移动速度。\n[0048] 具体的,在步骤S204中可以根据所述加速度参数确定悬浮键的移动加速度以及移动方向,进一步的,还可以通过悬浮键的移动加速度的大小来确定悬浮键在当前位置的移动速度的大小。例如,可以在悬浮键开始移动时进行计时,然后在悬浮键移动到与显示屏幕边缘之间的距离达到预设的第一距离阈值时获取悬浮键移动的时间t,进而通过速度公式v=at来确定悬浮键在当前位置时的移动速度大小v。最后,将悬浮键在当前位置时的移动速度大小v与步骤S205计算出的速度反馈值的差值作为新的悬浮键的移动速度的大小,进行接下来的移动,从而使得悬浮键的移动速度减小。例如,假设步骤S204中确定的悬浮键的合力加速度为a=5m/s2,悬浮键从移动开始到移动到与显示屏幕边缘之间的距离达到预设的第一距离阈值的时间t为1s,那么根据公式v=at,悬浮键在当前位置时的移动速度大小v=\n5m/s,若根据步骤S205中计算出的速度反馈值Δ=2m/s,那么新的悬浮键的移动速度即为v-Δ=3m/s。需要说明的是,这里的速度反馈值只改变悬浮键移动速度的大小,不改变其移动方向。\n[0049] 步骤S207,根据所述悬浮键的移动速度在所述终端的显示屏幕中移动所述悬浮键。\n[0050] 具体的,根据步骤S206得到的新的悬浮键的移动速度的大小,移动方向依旧与步骤S204中确定的方向一致,移动悬浮键。\n[0051] 进一步地,终端可以继续按照步骤S205的方法定时采集的悬浮键与终端显示屏幕边缘之间的距离中任意连续的三次采集距离,依照PID算法公式计算新的速度反馈值,然后按照步骤S206的方法进一步减小悬浮键移动速度的大小。如此循环执行PID算法,以达到控制悬浮键的移动速度的目的。仍继续步骤S206中的例子说明,假设每过t1=0.5s获取一次新的速度反馈值,那么获取到新的悬浮键的移动速度v-Δ=3m/s之后,终端继续选择采集到的悬浮键与终端显示屏幕边缘之间的距离中任意连续的三次采集距离来根据PID算法公式计算新的速度反馈值Δ1,得到Δ1=1m/s,然后根据公式v1=at1可以确定0.5s后的悬浮键移动速度为v1=2.5m/s,那么新的悬浮键的移动速度即为v1-Δ1=1.5m/s。\n[0052] 步骤S208,当检测到所述悬浮键移动到与所述终端显示屏幕边缘之间的距离小于预设的第二距离阈值时,停止移动所述悬浮键。\n[0053] 具体的,随着悬浮键不断移动到接近终端显示屏幕边缘的时候,也即悬浮键移动到与终端显示屏幕边缘之间的距离小于预设的第二距离阈值时,终端则停止悬浮键的移动。\n[0054] 在可选实施例中,速度反馈值可以替换为加速度反馈值。\n[0055] 具体实施中,加速度反馈值仍通过PID算法公式进行计算,但是公式中的Kp、Ki、Kd三个预设的调整值会与计算速度反馈值时有所变化,以得到合理的加速度反馈值,也即可以使悬浮键减速的加速度反馈值。进一步地,根据加速度参数和加速度反馈值可以确定悬浮键新的移动加速度,例如,悬浮键的合力加速度为a1=5m/s2,PID算法公式计算的加速度反馈值δ=6m/s2,则悬浮键在当前位置的新的移动加速度大小即为a1-δ=-1m/s2。需要说明的是,Kp、Ki、Kd三个预设的调整值可以保证新的移动加速度的大小不会导致悬浮键移动方向的变化。进而,可以根据悬浮键新的移动加速度在终端的显示屏幕中移动悬浮键。例如,\n2\n终端就按照不变的移动方向,以a1的数值-1m/s作为加速度移动悬浮键。\n[0056] 本发明实施例通过重力传感器获取终端的重力加速度,然后获取所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度参数,再根据所述加速度参数在所述终端的显示屏幕中移动悬浮键,实现了根据终端重力加速度的变化来移动悬浮键,进而优化用户在单手握持终端时对悬浮键的操作,同时还利用PID算法对悬浮键移动进行减速控制,使用户可以更加准确的控制悬浮键在显示界面的停留位置,优化了悬浮键的移动效果。\n[0057] 图3是本发明实施例中一种悬浮键移动装置的组成结构示意图。\n[0058] 重力获取模块310,用于通过重力传感器获取终端的重力加速度。\n[0059] 具体的,重力获取模块310具有重力传感器芯片,重力传感器芯片可以通过终端内部由于加速度造成的晶体形变而产生的电压来获知终端的重力加速度,这里重力加速度包括重力加速度的大小以及重力加速度的方向。具体实施中,重力获取模块310可以在用户触发悬浮键移动开启指令时,从重力传感器中获取终端的重力加速度,也可以定时从重力传感器中获取终端的重力加速度,当接收到用户触发悬浮键移动开启指令时,再在加速度获取模块320对获取到的重力加速度进行分析,这里不作限定。\n[0060] 加速度获取模块320,用于获取所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度参数。\n[0061] 具体的,基准坐标系为终端预先设定的以终端的显示屏幕为基准的X-Y坐标系,可以是如图5a或者图5b所示的坐标系,也可以是其他形式的在终端的显示屏幕上的形成的X-Y坐标系。加速度获取模块320利用获取到的重力加速度,可以将其投影在基准坐标系上,从而获得基准坐标系中的加速度参数,这里加速度参数包括投影在X坐标和Y坐标上的加速度,加速度又包括X坐标和Y坐标上加速度分量的大小和方向。例如,如图6所示,重力加速度在终端显示屏幕的基准坐标系上投影出X坐标和Y坐标上的加速度的大小分别为a1=4m/s2\n2\n和a2=3m/s,加速度的方向分别为X坐标方向和Y坐标的正方向。\n[0062] 第一移动模块330,用于根据所述加速度参数在所述终端的显示屏幕中移动悬浮键。\n[0063] 具体的,第一移动模块330可以将加速度获取模块320获取的重力加速度在终端显示屏幕的基准坐标系上投影的加速度作为悬浮键在显示屏幕上移动的加速度,然后根据该加速度的方向和大小移动悬浮键;也可以先对重力加速度在终端显示屏幕的基准坐标系上投影的加速度经过预设的数学变换,之后将经过数学变换得到的加速度作为悬浮键在显示屏幕上移动的加速度,再根据该加速度的大小和方向移动悬浮键。例如,如图6所示,重力加速度在终端显示屏幕的基准坐标系上投影出X坐标和Y坐标上的加速度的大小分别为a1=\n4m/s2和a2=3m/s2,可以将加速度a1和a2直接作为悬浮键在显示屏幕上移动的加速度来移动悬浮键,也可以将加速度a1和a2与预设的数值10的比值a11=0.4m/s2和a22=0.3m/s2作为悬浮键在显示屏幕上移动的加速度来移动悬浮键。\n[0064] 在具体的移动过程中,悬浮键的移动方向和移动合加速度的大小是根据悬浮键移动的加速度在X坐标和Y坐标上的方向和大小联合确定的。举例来说,假设悬浮键的移动加速度在X坐标和Y坐标上分别为a3=4m/s2和a4=3m/s2,方向如图7所示,那么悬浮键的移动方向即为图中a5所示的方向,且移动合加速度 那么终端就\n可以按照a5的方向,以a5的数值5m/s2作为加速度移动悬浮键。\n[0065] 反馈模块340,用于当检测到所述悬浮键移动到与显示屏幕边缘之间的距离达到预设的第一距离阈值时,根据所述悬浮键与所述显示屏幕边缘之间的距离和预设的PID算法公式计算速度反馈值。\n[0066] 具体的,终端可以不断的定时获取悬浮键的移动位置,当检测到悬浮键移动到与显示屏幕边缘之间的距离达到预设的第一距离阈值时,则改变原来的悬浮键的移动速度,反馈模块340通过PID算法的速度反馈值对悬浮键的移动进行减速。\n[0067] 具体来说,第一距离阈值可以设定为悬浮键与其在初始静止时的显示屏幕边缘之间的距离的阈值,也可以设定为悬浮键与其移动方向所指向的屏幕边缘之间的距离的阈值。例如,如图8所示,虚线圆形为悬浮键的初始位置,之后移动到实现圆形所处的位置,第一距离阈值可以是悬浮键与其在初始静止时的显示屏幕边缘之间的距离d1,也可以是悬浮键与其移动方向所指向的屏幕边缘之间的距离d2。\n[0068] 进一步地,反馈模块340还包括:采集单元341和计算单元342,如图4所示。\n[0069] 采集单元341,用于采集所述悬浮键与所述终端显示屏幕边缘之间的距离。\n[0070] 具体的,当检测到悬浮键移动到与显示屏幕边缘之间的距离达到预设的第一距离阈值后,采集单元341可以开始采集悬浮键与终端显示屏幕边缘之间的距离。具体实施中,悬浮键与终端显示屏幕边缘之间的距离的采集可以设定采集时间区间进行定时采集,也可以限定次数进行有规律的采集,还可以不限制次数和时间的随机采集;这里,采集的悬浮键与终端显示屏幕边缘之间的距离同样可以是图8中所示的d1或者d2中的一种。\n[0071] 计算单元342,用于根据PID算法公式Δ={Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]}计算所述速度反馈值,其中,e(k)为第k次采集的所述悬浮键与所述终端显示屏幕边缘之间的距离,Kp、Ki、Kd为预设的调整系数。\n[0072] 具体的,计算单元342将采集到的悬浮键与终端显示屏幕边缘之间的距离中任意连续的三次采集距离作为第k、k-1和k-2次采集的所述悬浮键与所述终端显示屏幕边缘之间的距离,即e(k)、e(k-1)和e(k-2),再将这三个值代入PID算法公式Δ={Kp[e(k)-e(k-\n1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]}中进行计算,从而获得悬浮键移动的速度反馈值。\n需要说明的是,Kp、Ki、Kd为预设的调整系数。\n[0073] 速度模块350,用于根据所述加速度参数和所述速度反馈值确定所述悬浮键的移动速度。\n[0074] 具体的,第一移动模块330可以根据所述加速度参数确定悬浮键的移动加速度以及移动方向,进一步的,速度模块350还可以通过悬浮键的移动加速度的大小来确定悬浮键在当前位置的移动速度的大小。例如,可以在悬浮键开始移动时进行计时,然后在悬浮键移动到与显示屏幕边缘之间的距离达到预设的第一距离阈值时获取悬浮键移动的时间t,进而通过速度公式v=at来确定悬浮键在当前位置时的移动速度大小v。最后,将悬浮键在当前位置时的移动速度大小v与反馈模块340计算出的速度反馈值的差值作为新的悬浮键的移动速度的大小,进行接下来的移动,从而使得悬浮键的移动速度减小。例如,假设步骤S204中确定的悬浮键的合力加速度为a=5m/s2,悬浮键从移动开始到移动到与显示屏幕边缘之间的距离达到预设的第一距离阈值的时间t为1s,那么根据公式v=at,悬浮键在当前位置时的移动速度大小v=5m/s,若根据步骤S205中计算出的速度反馈值Δ=2m/s,那么新的悬浮键的移动速度即为v-Δ=3m/s。需要说明的是,这里的速度反馈值只改变悬浮键移动速度的大小,不改变其移动方向。\n[0075] 第二移动模块360,用于根据所述悬浮键的移动速度在所述终端的显示屏幕中移动所述悬浮键。\n[0076] 具体的,根据速度模块350得到的新的悬浮键的移动速度的大小,移动方向依旧与第一移动模块330中确定的方向一致,第二移动模块360移动悬浮键。\n[0077] 进一步地,终端可以继续按照反馈模块340的方法定时采集的悬浮键与终端显示屏幕边缘之间的距离中任意连续的三次采集距离,依照PID算法公式计算新的速度反馈值,然后按照速度模块350的方法进一步减小悬浮键移动速度的大小。如此循环执行PID算法,以达到控制悬浮键的移动速度的目的。仍继续速度模块350中的例子说明,假设每过t1=\n0.5s获取一次新的速度反馈值,那么获取到新的悬浮键的移动速度v-Δ=3m/s之后,终端继续选择采集到的悬浮键与终端显示屏幕边缘之间的距离中任意连续的三次采集距离来根据PID算法公式计算新的速度反馈值Δ1,得到Δ1=1m/s,然后根据公式v1=at1可以确定0.5s后的悬浮键移动速度为v1=2.5m/s,那么新的悬浮键的移动速度即为v1-Δ1=\n1.5m/s。\n[0078] 停止模块370,用于当检测到所述悬浮键移动到与所述终端显示屏幕边缘之间的距离小于预设的第二距离阈值时,停止移动所述悬浮键。\n[0079] 具体的,随着悬浮键不断移动到接近终端显示屏幕边缘的时候,也即悬浮键移动到与终端显示屏幕边缘之间的距离小于预设的第二距离阈值时,停止模块370则停止悬浮键的移动。\n[0080] 指令模块380,用于接收悬浮键移动开启指令。\n[0081] 具体的,在悬浮键在默认情况下是不会根据终端获取的重力加速度进行移动的,通常悬浮键是处于固定位置或者可以由用户进行拖动等操作来改变其位置。因此,悬浮键移动功能需要通过悬浮键移动开启指令来触发。具体实施中,悬浮键移动开启指令可以是点击终端预设在工具栏中的一个开关图标、按下终端硬件装置中的一个按钮或者用户在终端中输入的一种开启手势等等操作。当指令模块380接收到用户输入的悬浮键移动开启指令后,才可以根据后续的步骤移动悬浮键。\n[0082] 本发明实施例通过重力传感器获取终端的重力加速度,然后获取所述重力加速度在终端显示屏幕的基准坐标系上投影的加速度参数,再根据所述加速度参数在所述终端的显示屏幕中移动悬浮键,实现了根据终端重力加速度的变化来移动悬浮键,进而优化用户在单手握持终端时对悬浮键的操作,同时还利用PID算法对悬浮键移动进行减速控制,使用户可以更加准确的控制悬浮键在显示界面的停留位置,优化了悬浮键的移动效果。\n[0083] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。\n[0084] 以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
法律信息
- 2019-06-11
- 2016-06-01
实质审查的生效
IPC(主分类): G06F 3/0346
专利申请号: 201510536935.6
申请日: 2015.08.27
- 2016-05-04
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2014-06-04
|
2014-03-20
| | |
2
| |
2013-02-27
|
2012-11-14
| | |
3
| |
2014-10-29
|
2014-07-23
| | |
4
| |
2014-05-07
|
2012-10-19
| | |
5
| |
2013-01-09
|
2012-09-06
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |