CN105068754A - 一种在任意界面实现手势检测的方法 - Google Patents
一种在任意界面实现手势检测的方法 Download PDFInfo
- Publication number
- CN105068754A CN105068754A CN201510538171.4A CN201510538171A CN105068754A CN 105068754 A CN105068754 A CN 105068754A CN 201510538171 A CN201510538171 A CN 201510538171A CN 105068754 A CN105068754 A CN 105068754A
- Authority
- CN
- China
- Prior art keywords
- gesture
- panel
- transparent
- detection
- screen
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种在任意界面实现手势检测的方法,包括如下步骤:在Android窗口管理系统中建立一个悬浮面板,设置悬浮面板的属性,使其透明且位于屏幕最上方,禁止悬浮面板的触摸事件、焦点获取事件;建立一个视窗,设置视窗的属性,使其透明,在视窗中建立一个Android系统底层的手势监听器;悬浮面板加载所述视窗,形成透明检测面板,所述手势监听器监听透明检测面板的所有手势检测事件;定义至少一种手势,使其触发手势检测事件。本发明通过更改底层源码,在屏幕最上方建立一个可监听所有界面手势的悬浮面板,实现任意界面的手势检测,使截屏等操作不需要依赖硬件执行,用户单手即可操作,十分简单。
Description
技术领域
本发明涉及Android系统,尤其涉及在Android系统中的任意界面上实现手势检测的方法。
背景技术
目前无论是IOS系统还是Android系统中,需要触发一些系统功能都需要在特定的页面点击相应的图标完成,或者需要通过硬件按钮来完成,例如IOS系统当中的截屏功能,是需要同时操作两个硬件按钮才能实现。
手势识别技术在Android系统中已经有很多应用,但是目前手势识别的技术原理是在触摸事件触发源进行手势动作的识别和检测,即触摸屏驱动层完成手势检测,比较依赖于硬件。若是过于依赖触摸屏驱动层的手势识别,往往会因换了触摸屏厂商导致原本的手势检测的功能失去支持,导致手势识别功能不可用,这样将会需要重新编码适应新的触摸屏,导致在Android系统中手势识别应用层开发时,研发的可控性、扩展性大大降低。
发明内容
本发明为了解决上述现有技术的问题,提出一种在任意界面实现手势检测的方法,包括如下步骤:
步骤1:在Android窗口管理系统中建立一个悬浮面板,设置悬浮面板的属性,使其透明且位于屏幕最上方,禁止悬浮面板的触摸事件、焦点获取事件;
步骤2:建立一个视窗,设置视窗的属性,使其透明,在视窗中建立一个Android系统底层的手势监听器;
步骤3:悬浮面板加载所述视窗,形成透明检测面板,所述手势监听器监听透明检测面板的所有手势检测事件;
步骤4:定义至少一种手势,使其触发手势检测事件。
本发明将原本只能触摸屏驱动层完成的任意界面手势检测的功能转移到系统应用层中实现,使得开发人员可以利用手势检测对Android系统的功能进行全面的掌控,不再受任何触摸屏厂商的限制。同时也解放了用户的双手,让用户单手就可以完成任意界面手势截屏等操作,手势动作简单又不会与普通的手势动作相互干扰。
附图说明
图1是本发明的流程图;
图2是本发明手势监听器的工作流程图。
具体实施方式
以下结合附图和实施例,详细说明本发明的工作过程。
如图1、图2所示,本发明一实施例提出的在任意界面实现手势检测的方法,让人们实现单手操控完成截屏等功能,不仅解放双手,而且还不需要依赖硬件按钮。
本发明首先在Android窗口管理系统中建立一个悬浮面板,该悬浮面板与手机屏幕的尺寸一致,设置悬浮面板的属性,将悬浮面板设置为透明,这样用户看到的是屏幕上的其他窗口界面,看不到该悬浮面板,然后将该悬浮面板置于屏幕最上方,并禁止悬浮面板的触摸事件、焦点获取事件。
接着建立一个视窗,设置视窗的属性,使它的尺寸与悬浮面板以及屏幕匹配,并且该视窗也设置为透明,并在视窗中建立一个Android系统底层的手势监听器。通常APP研发人员对于手势的检测和识别,都是在视窗中利用应用层的onTouchEvent等事件来进行,这些事件只能在当下的视窗中触发,无法再任意界面都被触发。而本发明通过调用Android系统底层的手势监听器从而使悬浮面板的手势识别可以在任意界面触发。
在悬浮面板中加载上述视窗,形成透明检测面板,手势监听器监听透明检测面板的所有手势检测事件,定义至少一种手势,使其触发手势检测事件。
所述手势监听器通过检测屏幕同时被触摸的点的个数及其对应的坐标的变化来区分不同的手势。为了避免误判,手势监听器还可以设置一个快速滑动速度阈值,当同时被触摸的点的坐标的变化速度均超过所述快速滑动速度阈值,则判断该手势成立,触发对应的手势检测事件。
下面以三指滑动触发截屏为例进行详细说明。
手势滑动事件判定,主要根据3个手指开始和结束之间的坐标差进行判定。
当上下滑动时,若3指的开始和结束的Y坐标差同时为正值时,并且这个坐标差是大于预设的滑动阈值,则为上滑事件,反之为下滑事件;
如果要进一步避免误判,则继续计算三点的平均滑动速度,判断平均滑动速度是否大于预设的快速滑动速度阈值,若是大于,则是符合触发条件的一个手势,可以触发相应的操作,例如截屏等。
同样的,当左右滑动时,若3指的开始和结束的X坐标差同时为正值时,则为左滑事件,并且这个坐标差是大于预设的滑动阈值,反之为右滑事件;然后还可以利于快速滑动速度阈值避免误判。
应当理解的是,上述针对具体实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。
Claims (4)
1.一种在任意界面实现手势检测的方法,其特征在于,包括如下步骤:
步骤1:在Android窗口管理系统中建立一个悬浮面板,设置悬浮面板的属性,使其透明且位于屏幕最上方,禁止悬浮面板的触摸事件、焦点获取事件;
步骤2:建立一个视窗,设置视窗的属性,使其透明,在视窗中建立一个Android系统底层的手势监听器;
步骤3:悬浮面板加载所述视窗,形成透明检测面板,所述手势监听器监听透明检测面板的所有手势检测事件;
步骤4:定义至少一种手势,使其触发手势检测事件。
2.如权利要求1所述的方法,其特征在于,所述悬浮面板与视窗的尺寸与屏幕一致。
3.如权利要求1所述的方法,其特征在于,所述手势监听器通过检测屏幕同时被触摸的点的个数及其对应的坐标的变化来区分不同的手势。
4.如权利要求3所述的方法,其特征在于,所述手势监听器设置一个快速滑动速度阈值,当同时被触摸的点的坐标的变化速度均超过所述快速滑动速度阈值,则判断该手势成立,触发对应的手势检测事件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510538171.4A CN105068754A (zh) | 2015-08-28 | 2015-08-28 | 一种在任意界面实现手势检测的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510538171.4A CN105068754A (zh) | 2015-08-28 | 2015-08-28 | 一种在任意界面实现手势检测的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105068754A true CN105068754A (zh) | 2015-11-18 |
Family
ID=54498136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510538171.4A Pending CN105068754A (zh) | 2015-08-28 | 2015-08-28 | 一种在任意界面实现手势检测的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105068754A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487772A (zh) * | 2015-11-26 | 2016-04-13 | 上海斐讯数据通信技术有限公司 | 信息抓取方法及装置 |
CN107844759A (zh) * | 2017-10-24 | 2018-03-27 | 努比亚技术有限公司 | 一种手势识别方法、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339151A (zh) * | 2010-07-20 | 2012-02-01 | 德信无线通讯科技(上海)有限公司 | 用于触摸屏手机的手势快捷启动的方法 |
US20120062489A1 (en) * | 2010-09-08 | 2012-03-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Gesture-based object manipulation methods and devices |
CN103226445A (zh) * | 2013-05-10 | 2013-07-31 | 广东国笔科技股份有限公司 | 一种手写输入的方法、系统和终端 |
CN104778000A (zh) * | 2015-03-20 | 2015-07-15 | 广东欧珀移动通信有限公司 | 方向标记显示方法及方向标记显示系统 |
-
2015
- 2015-08-28 CN CN201510538171.4A patent/CN105068754A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339151A (zh) * | 2010-07-20 | 2012-02-01 | 德信无线通讯科技(上海)有限公司 | 用于触摸屏手机的手势快捷启动的方法 |
US20120062489A1 (en) * | 2010-09-08 | 2012-03-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Gesture-based object manipulation methods and devices |
CN103226445A (zh) * | 2013-05-10 | 2013-07-31 | 广东国笔科技股份有限公司 | 一种手写输入的方法、系统和终端 |
CN104778000A (zh) * | 2015-03-20 | 2015-07-15 | 广东欧珀移动通信有限公司 | 方向标记显示方法及方向标记显示系统 |
Non-Patent Citations (1)
Title |
---|
CSDN博客: "《Android中使用WindowManager实现悬浮窗口》", 《BLOG.CSDN.NET/RICEFCC/ARTICLE/DETAILS/41356239》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487772A (zh) * | 2015-11-26 | 2016-04-13 | 上海斐讯数据通信技术有限公司 | 信息抓取方法及装置 |
CN107844759A (zh) * | 2017-10-24 | 2018-03-27 | 努比亚技术有限公司 | 一种手势识别方法、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102545602B1 (ko) | 전자 장치 및 그의 동작 방법 | |
CN102819352B (zh) | 控制终端设备的方法和装置 | |
CN106991304B (zh) | 消息的处理方法及装置 | |
KR102429740B1 (ko) | 터치 이벤트 처리 방법 및 그 장치 | |
KR102390647B1 (ko) | 전자장치 및 전자장치의 객체 제어 방법 | |
CN107402667A (zh) | 包含显示器的电子设备 | |
US20110267371A1 (en) | System and method for controlling touchpad of electronic device | |
KR102616430B1 (ko) | 터치의 압력 입력에 기반하여 선택 영역을 결정하는 전자 장치 및 방법 | |
CN105389076A (zh) | 通过电子装置提供通知的方法和电子装置 | |
US20160301799A1 (en) | Method for switching off communication screen to avoid false triggering based on mobile terminal and system employing the same | |
CN103793137A (zh) | 一种显示方法及电子设备 | |
CN104866225A (zh) | 一种具有触摸显示屏的电子设备及其控制方法 | |
US20160132178A1 (en) | Method for Enabling Function Module of Terminal, and Terminal Device | |
KR102468120B1 (ko) | 뷰 계층(뷰 레이어)들을 이용하여 입력을 처리하는 방법 및 전자장치 | |
KR20160027775A (ko) | 터치 입력 처리 방법 및 그 장치 | |
KR102294705B1 (ko) | 유저 입력에 기초한 오브젝트 속성을 제어하는 전자 장치 및 방법 | |
CN104978023A (zh) | 用于接收用户输入的电子装置的用户界面方法和设备 | |
US10013595B2 (en) | Correlating fingerprints to pointing input device actions | |
CN106775536A (zh) | 一种双屏切换方法以及装置 | |
KR20170036424A (ko) | 터치 속성에 대응하는 이벤트를 제공하기 위한 방법 및 그 전자 장치 | |
CN104298434B (zh) | 一种信息处理方法及电子设备 | |
KR102536148B1 (ko) | 전자 장치의 동작 방법 및 장치 | |
CN104199608B (zh) | 在触摸终端上快速开启记录的方法及触摸终端 | |
US20160170386A1 (en) | Electronic device and control method using electronic device | |
CN105068754A (zh) | 一种在任意界面实现手势检测的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151118 |