《一种滑动过程中防止界面抖动的方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种滑动过程中防止界面抖动的方法和装置.pdf(8页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103677416 A (43)申请公布日 2014.03.26 CN 103677416 A (21)申请号 201310682215.1 (22)申请日 2013.12.13 G06F 3/041(2006.01) G06F 3/0354(2013.01) (71)申请人 广东欧珀移动通信有限公司 地址 523860 广东省东莞市长安镇乌沙海滨 路 18 号 (72)发明人 郭江涛 (74)专利代理机构 广州市华学知识产权代理有 限公司 44245 代理人 李盛洪 (54) 发明名称 一种滑动过程中防止界面抖动的方法和装置 (57) 摘要 本发明公开了一种滑动过程。
2、中防止界面抖动 的方法和装置, 涉及触摸技术研究领域, 用于使滑 动界面更加顺滑, 避免出现卡顿或抖动的问题。 该 方法包括 : 获取触摸屏上当前事件中最新坐标, 定义为当前坐标 ; 定义该当前事件之前第一个事 件中的最新坐标为第一坐标, 定义该当前事件之 前第二个事件中的最新坐标为第二坐标 ; 计算第 二坐标与第一坐标之间的距离, 定义为第一距离, 计算第一坐标与当前坐标的距离, 定义为第二距 离 ; 判断第二距离是否大于第一距离的 2 倍, 如果 否, 则正常处理当前事件 ; 如果是, 则在第一坐标 和当前坐标之间设置缓冲点, 按照缓冲点位置开 始正常处理收到的事件。本发明可以使界面滑动 。
3、更流畅, 更好地提高用户体验。 (51)Int.Cl. 权利要求书 2 页 说明书 4 页 附图 1 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书4页 附图1页 (10)申请公布号 CN 103677416 A CN 103677416 A 1/2 页 2 1. 一种滑动过程中防止界面抖动的方法, 其特征在于, 包括以下步骤 : (1) 获取触摸屏上当前事件中最新坐标, 定义为当前坐标 ; 定义该当前事件之前第一 个事件中的最新坐标为第一坐标, 定义该当前事件之前第二个事件中的最新坐标为第二坐 标 ; (2) 计算第二坐标与第一坐标之间的距离, 定义为。
4、第一距离, 计算第一坐标与当前坐标 的距离, 定义为第二距离 ; (3) 判断第二距离是否大于第一距离的 2 倍, 如果是, 进入步骤 (4) , 否则正常处理当前 事件 ; (4) 在第一坐标和当前坐标之间设置缓冲点, 按照缓冲点位置开始正常处理收到的事 件。 2. 根据权利要求 1 所述的滑动过程中防止界面抖动的方法, 其特征在于, 所述步骤 (4) 中, 缓冲点设置在第一坐标和当前坐标之间的中点上。 3. 根据权利要求 1 所述的滑动过程中防止界面抖动的方法, 其特征在于, 所述步骤 (4) 中, 若当前事件包括若干个触摸点, 则选择第一坐标和当前坐标正中间的一个触摸点作为 缓冲点。 4。
5、. 根据权利要求 1 所述的滑动过程中防止界面抖动的方法, 其特征在于, 设定一第一 阈值, 计算第二坐标与第一坐标的横坐标之差, 计算第一坐标与当前坐标的横坐标之差, 如 果上述两个差值之差小余第一阈值, 则在进行步骤 (2) 的距离计算时, 将第二坐标与第一坐 标的纵坐标之差作为第一距离, 将第一坐标与当前坐标的纵坐标之差作为第二距离。 5. 根据权利要求 1 所述的滑动过程中防止界面抖动的方法, 其特征在于, 设定一第二 阈值, 计算第二坐标与第一坐标的纵坐标之差, 计算第一坐标与当前坐标的纵坐标之差, 如 果上述两个差值之差小余第二阈值, 则在进行步骤 (2) 的距离计算时, 将第二坐。
6、标与第一坐 标的横坐标之差作为第一距离, 将第一坐标与当前坐标的横坐标之差作为第二距离。 6. 一种滑动过程中防止界面抖动的装置, 其特征在于, 包括 : 获取和定义单元, 用于获取触摸屏上当前事件中最新坐标, 定义为当前坐标 ; 定义该当 前事件之前第一个事件中的最新坐标为第一坐标, 定义该当前事件之前第二个事件中的最 新坐标为第二坐标 距离计算单元, 用于计算第二坐标与第一坐标之间的距离, 定义为第一距离, 计算第一 坐标与当前坐标的距离, 定义为第二距离 ; 判断单元, 用于判断判断第二距离是否大于第一距离的 2 倍, 如果是, 进入步骤 (4) , 否 则正常处理收到的事件 ; 缓冲点。
7、设置单元, 用于在第一坐标和当前坐标之间设置缓冲点, 按照缓冲点位置开始 正常处理收到的事件 ; 界面滑动模块, 用于根据当前收到的事件坐标滑动界面。 7. 根据权利要求 6 所述的滑动过程中防止界面抖动的装置, 其特征在于, 在所述缓冲 点设置单元, 包括 : 一缓冲点坐标计算模块, 用于求取第一坐标和当前坐标之间的中点上的 坐标。 8. 根据权利要求 6 所述的滑动过程中防止界面抖动的装置, 其特征在于, 所述缓冲点 坐标计算模块, 用于在当前事件包括若干个触摸点时, 计算第一坐标和当前坐标正中间的 权 利 要 求 书 CN 103677416 A 2 2/2 页 3 一个触摸点的坐标作为。
8、缓冲点。 9. 根据权利要求 6 所述的滑动过程中防止界面抖动的装置, 其特征在于, 所述距离计 算单元包括 : 第一计算单元, 用于根据第二坐标与第一坐标的横坐标之差、 第一坐标与当前坐标的 横坐标之差, 得到两个差值之差 ; 第一判断单元, 用于判断两个差值之差是否小余第一阈值 ; 第一判定模块, 用于当两个差值之差小余第一阈值时, 将第二坐标与第一坐标的纵坐 标之差作为第一距离, 将第一坐标与当前坐标的纵坐标之差作为第二距离。 10. 根据权利要求 6 所述的滑动过程中防止界面抖动的装置, 其特征在于, 所述距离计 算单元包括 : 第二计算单元, 用于根据第二坐标与第一坐标的纵坐标之差、。
9、 第一坐标与当前坐标的 纵坐标之差, 得到两个差值之差 ; 第二判断单元, 用于判断两个差值之差是否小余第二阈值 ; 第二判定模块, 用于当两个差值之差小余第二阈值时, 将第二坐标与第一坐标的横坐 标之差作为第一距离, 将第一坐标与当前坐标的横坐标之差作为第二距离。 权 利 要 求 书 CN 103677416 A 3 1/4 页 4 一种滑动过程中防止界面抖动的方法和装置 技术领域 0001 本发明涉及移动设备触摸技术研究领域, 特别涉及一种滑动过程中防止界面抖动 的方法和装置。 背景技术 0002 在 android 系统中, 很多界面在滑动的过程中会有抖动或者卡顿的现象, 比如在 桌面,。
10、 手指滑动过程中界面会跟着手指滚动, 但是界面滚动的过程中会有轻微的抖动或者 卡顿, 其中的一个原因是因为接收到的坐标不均匀或者坐标本身有抖动现象。 0003 公开号为 CN101859219B 的中国发明专利公开了一种触摸屏触点坐标去抖动的方 法, 该方法是判断当前触点坐标与其前一个触点坐标的距离是否小于或等于一阈值, 借此 判断当前的触点坐标是否发生抖动, 如果发生抖动就将当前的触点坐标丢弃。但是这种方 法存在两个问题 : 1、 直接通过当前触点坐标与其前一个触点坐标的距离来判断是否发生抖 动, 判断方式比较单一, 容易产生误判 ; 2、 如果判断发生抖动, 就将当前的触点坐标丢弃, 这 。
11、种只适用于抖动较小的情况。 0004 因此, 研究一种能够在触摸设备滑动过程中避免出现不连贯问题的方法和装置具 有重要应用价值。 发明内容 0005 本发明的主要目的在于克服现有技术的缺点与不足, 提供一种滑动过程中防止界 面抖动的方法, 该方法能够使滑动界面更加顺滑, 提升用户体验。 0006 本发明还提供了一种基于上述方法的滑动过程中防止界面抖动的装置。 0007 本发明的目的通过以下的技术方案实现 : 一种滑动过程中防止界面抖动的方法, 包括以下步骤 : 0008 (1) 获取触摸屏上当前事件中最新坐标, 定义为当前坐标 ; 定义该当前事件之前第 一个事件中的最新坐标为第一坐标, 定义该。
12、当前事件之前第二个事件中的最新坐标为第二 坐标 ; 0009 (2) 计算第二坐标与第一坐标之间的距离, 定义为第一距离, 计算第一坐标与当前 坐标的距离, 定义为第二距离 ; 0010 (3) 判断第二距离是否大于第一距离的 2 倍, 如果是, 进入步骤 (4) , 否则正常处理 当前事件 ; 0011 (4) 在第一坐标和当前坐标之间设置缓冲点, 按照缓冲点位置开始正常处理收到 的事件。 0012 作为一种优选的实施方式, 所述步骤 (4) 中, 缓冲点设置在第一坐标和当前坐标之 间的中点上。 0013 作为另一种优选方式, 并结合实际使用情况, 降低计算量, 所述步骤 (4) 中, 若当。
13、前 事件包括若干个触摸点, 则选择第一坐标和当前坐标正中间的一个触摸点作为缓冲点。 说 明 书 CN 103677416 A 4 2/4 页 5 0014 作为优选, 设定一第一阈值, 计算第二坐标与第一坐标的横坐标之差, 计算第一坐 标与当前坐标的横坐标之差, 如果上述两个差值之差小余第一阈值, 则在进行步骤 (2) 的距 离计算时, 将第二坐标与第一坐标的纵坐标之差作为第一距离, 将第一坐标与当前坐标的 纵坐标之差作为第二距离。从而可以在结合实际的情况下, 降低计算量。 0015 作为优选, 设定一第二阈值, 计算第二坐标与第一坐标的纵坐标之差, 计算第一坐 标与当前坐标的纵坐标之差, 如。
14、果上述两个差值之差小余第二阈值, 则在进行步骤 (2) 的距 离计算时, 将第二坐标与第一坐标的横坐标之差作为第一距离, 将第一坐标与当前坐标的 横坐标之差作为第二距离。 0016 一种滑动过程中防止界面抖动的装置, 包括 : 0017 获取和定义单元, 用于获取触摸屏上当前事件中最新坐标, 定义为当前坐标 ; 定义 该当前事件之前第一个事件中的最新坐标为第一坐标, 定义该当前事件之前第二个事件中 的最新坐标为第二坐标 0018 距离计算单元, 用于计算第二坐标与第一坐标之间的距离, 定义为第一距离, 计算 第一坐标与当前坐标的距离, 定义为第二距离 ; 0019 判断单元, 用于判断第二距离。
15、是否大于第一距离的 2 倍, 如果是, 进入步骤 (4) , 否 则正常处理收到的事件 ; 0020 缓冲点设置单元, 用于在第一坐标和当前坐标之间设置缓冲点, 按照缓冲点位置 开始正常处理收到的事件 ; 0021 界面滑动模块, 用于根据当前收到的事件坐标滑动界面。 0022 在所述缓冲点设置单元, 包括 : 一缓冲点坐标计算模块, 用于求取第一坐标和当前 坐标之间的中点上的坐标。 0023 作为一种优选的实施方式, 所述缓冲点坐标计算模块, 用于在当前事件包括若干 个触摸点时, 计算第一坐标和当前坐标正中间的一个触摸点的坐标作为缓冲点。 0024 作为优选, 所述距离计算单元包括 : 00。
16、25 第一计算单元, 用于根据第二坐标与第一坐标的横坐标之差、 第一坐标与当前坐 标的横坐标之差, 得到两个差值之差 ; 0026 第一判断单元, 用于判断两个差值之差是否小余第一阈值 ; 0027 第一判定模块, 用于当两个差值之差小余第一阈值时, 将第二坐标与第一坐标的 纵坐标之差作为第一距离, 将第一坐标与当前坐标的纵坐标之差作为第二距离, 0028 作为优选, 所述距离计算单元包括 : 0029 第二计算单元, 用于根据第二坐标与第一坐标的纵坐标之差、 第一坐标与当前坐 标的纵坐标之差, 得到两个差值之差 ; 0030 第二判断单元, 用于判断两个差值之差是否小余第二阈值 ; 0031。
17、 第二判定模块, 用于当两个差值之差小余第二阈值时, 将第二坐标与第一坐标的 横坐标之差作为第一距离, 将第一坐标与当前坐标的横坐标之差作为第二距离。 0032 本发明与现有技术相比, 具有如下优点和有益效果 : 0033 1、 本发明根据当前事件的坐标, 并利用历史记录中前两次的事件的坐标来判断是 否容易导致界面不流畅, 如果判断会出现, 就预先在后面一次滑动的过程中, 在当前事件中 最新坐标点和前一事件中的最新坐标点之间增加缓冲点, 从而避免出现滚动时不很连贯, 说 明 书 CN 103677416 A 5 3/4 页 6 出现卡顿感或抖动的现象。相较于现有技术中将抖动点去掉, 本方法既保。
18、留了用户准确地 触摸位置, 又能够更好地提升用户体验, 有较大的实用价值。 0034 2、 本发明方法实现简单, 既能够保证滑动流畅, 还可以在实际应用中根据实际硬 件设备条件调节计算量。 附图说明 0035 图 1 是本发明方法的流程示意图。 0036 图 2 是本发明实施例 1 中的说明例图。 具体实施方式 0037 下面结合实施例及附图对本发明作进一步详细的描述, 但本发明的实施方式不限 于此。 0038 实施例 1 0039 在基于 Android 平台的移动设备上进行触摸屏滑动过程中, 每一次触摸系统应用 收到的都是一个 MotionEvent.java 对象, 该对象里面可能包含多。
19、个点的坐标, 而一般情况 下应用只会处理最新的一个点的坐标, 如果两次触摸事件中, 最新坐标之间的差距太大, 就 会导致界面在滑动的过程中出现抖动或者卡顿的现象, 为了克服这一问题, 本实施例给出 了一种滑动过程中防止界面抖动的方法, 如图 1 和 2 所示, 包括以下步骤 : 0040 (1)获取触摸屏上当前事件 (motionEvent 对象 3)中最新坐标 ((x7,y7)) , 定 义为当前坐标 ; 定义该当前事件之前第一个事件 (motionEvent 对象 2)中的最新坐标 ( (x6,y6) ) 为第一坐标, 定义该当前事件之前第二个事件 (motionEvent 对象 1) 中。
20、的最新坐 标 ((x2,y2)) 为第二坐标 ; 0041 (2) 计算第二坐标 (x2,y2) 与第一坐标 (x6,y6) 之间的距离, 定义为第一距离, 计 算第一坐标 (x6,y6) 与当前坐标 (x7,y7) 的距离, 定义为第二距离 ; 0042 (3) 判断第二距离是否大于第一距离的 2 倍, 如果是, 进入步骤 (4) , 否则正常处理 motionEvent 对象 3 ; 0043 (4) 在第一坐标 (x6,y6) 和当前坐标 (x7,y7) 之间设置缓冲点, 按照缓冲点位置开 始正常处理收到的事件。 0044 在本实施例中可以将缓冲点设置在第一坐标 (x6,y6) 和当前坐。
21、标 (x7,y7) 之间 的中点上。但在实际应用中, 为了降低计算量, 若当前事件包括若干个触摸点, 则可以选 择第一坐标和当前坐标正中间的一个触摸点作为缓冲点。例如对于 motionEvent 对象 1, motionEvent 对象 2, 若二者之间需要找到一个缓冲点, 则可以选择 motionEvent 对象 2 中 的触摸点 (x4,x4) 作为缓冲点, 从而避免进行距离计算。 0045 在本实施例中, 进行距离求取的时候也可以进行简化, 降低计算量, 例如 : 设定一 第一阈值, 计算第二坐标与第一坐标的横坐标之差, 计算第一坐标与当前坐标的横坐标之 差, 如果上述两个差值之差小余第。
22、一阈值, 则在进行步骤 (2) 的距离计算时, 将第二坐标与 第一坐标的纵坐标之差作为第一距离, 将第一坐标与当前坐标的纵坐标之差作为第二距 离。 0046 同上, 可以设定一第二阈值, 计算第二坐标与第一坐标的纵坐标之差, 计算第一坐 说 明 书 CN 103677416 A 6 4/4 页 7 标与当前坐标的纵坐标之差, 如果上述两个差值之差小余第二阈值, 则在进行步骤 (2) 的距 离计算时, 将第二坐标与第一坐标的横坐标之差作为第一距离, 将第一坐标与当前坐标的 横坐标之差作为第二距离。 0047 在实际操作中, 可采用下面的方法来实现。 0048 定义X_old、 Y_old用来保存。
23、上一个事件的坐标 ; M_old保存上一次对比的差量。 通 过Android平台实现, 在Android中MotionEvent.java的一个接口为getAction(), 该接口 返回事件的类型有三种, 分别是 down 事件、 move 事件和 up 事件, down 事件表示按下的动 作, move 事件表示按下后不松开的动作, up 事件表示手指抬起的动作, 所以滑动屏幕, 都会 有一次 down 事件, 多个 move 事件, 一个 up 事件产生 ; 0049 在接收到当前触摸坐标后, 进行以下步骤 : 0050 步骤 1、 通过 getAction() 获取的值判断是否是 do。
24、wn 事件, 如果是, 则将该事件的 坐标保存在变量 X_old、 Y_old, 将 M_old 置为 -1, 并根据这个坐标进行相关的操作 ; 0051 步骤 2、 如果不是 down 事件, 则将获得事件中的最新坐标 (X_new,Y_new) 和 X_ old、 Y_old 中的最新坐标 (XX_old、 YY_old) 对比, 以对比 X 轴坐标为例 : 如果两点纵坐标之 差小余设定的一个较小的阈值, 同时横坐标相差的值大于 2*M_old, 且 M_old 不等于 -1, 则 进行步骤3 ; 否则直接处理当前事件, 并将横坐标X与X_old的距离赋值给M_old, 将当前事 件中的坐。
25、标赋值给 X_old、 Y_old, 然后从步骤 1 重复 ; 0052 步骤 3、 getHistorySize() 是 MotionEvent.java 的一个接口, 返回值代表该对象 中包含多少个点。通过 getHistorySize() 方法获取在点 X_new 和 XX_old 之间点的个数, 然后在这些点中选择最中间的一个点作为缓冲点进行处理, 在缓冲点处理完后再处理当前 事件。 0053 可通过各种手段实施本发明描述的技术。举例来说, 这些技术可实施在硬件、 固 件、 软件或其组合中。对于硬件实施方案, 处理模块可实施在一个或一个以上专用集成电 路 (ASIC) 、 数字信号处理。
26、器 (DSP) 、 可编程逻辑装置 (PLD) 、 现成可编程门阵列 (FPGA) 、 处理 器、 控制器、 微控制器、 电子装置、 其他经设计以执行本发明所描述的功能的电子单元或其 组合内。 0054 对于固件和 / 或软件实施方案, 可用执行本文描述的功能的模块 (例如, 过程、 步 骤、 流程等) 来实施所述技术。固件和 / 或软件代码可存储在存储器中并由处理器执行。存 储器可实施在处理器内或处理器外部。 0055 本领域普通技术人员可以理解 : 实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成, 前述的程序可以存储在一计算机可读取存储介质中, 该程序 在执行时, 执行包括上述方法实施例的步骤 ; 而前述的存储介质包括 : ROM、 RAM、 磁碟或者 光盘等各种可以存储程序代码的介质。 0056 上述实施例为本发明较佳的实施方式, 但本发明的实施方式并不受上述实施例的 限制, 其他的任何未背离本发明的精神实质与原理下所作的改变、 修饰、 替代、 组合、 简化, 均应为等效的置换方式, 都包含在本发明的保护范围之内。 说 明 书 CN 103677416 A 7 1/1 页 8 图 1 图 2 说 明 书 附 图 CN 103677416 A 8 。