一种在终端中的触控操作方法和装置的制造方法_3

文档序号:8905017阅读:来源:国知局
应,使得可以正常触发窗口 303中的控件。
[0118]在本发明的一种优选实施例中,子步骤S21可以包括如下子步骤:
[0119]子步骤S211,检测所述触摸点与所述触摸屏的边界之间形成的多个电流值;
[0120]子步骤S222,采用所述多个电流值按照线性关系计算触摸点坐标。
[0121]需要说明的是,本发明实施例可以应用于触摸点的坐标位置计算符合线性关系的触摸屏中,如电容式触摸屏、电阻式触摸屏。
[0122]以电容式触摸屏为例,电容式触摸屏在在触摸屏四边均镀上狭长的电极,在导电体内形成一个低压交流电场。
[0123]用户触摸屏幕时,由于人体电场,手指与导体层间会形成一个耦合电容,就会有一定量的电荷转移到人体。为了恢复这些电荷损失,四边电极发出的电流会流向触摸点,而电流强弱与触摸点到电极的距离成正比(即线性关系),位于触摸屏后的控制器便会计算电流的比例及强弱,从而计算出触摸点的坐标位置。
[0124]例如,如图5A所示,假设触摸屏的触屏区域501的宽度为W,高度为H,虚拟原点502的坐标为(0,0),触摸点503的位置坐标为(X,y)。触摸屏的电流检测点为四条边,流经左、上、右、下边的测得电流分别为1x1、IyU 1x2、Iy2。
[0125]那么,触摸点的坐标为:
[0126]X = W* (1x1/(Ixl+Ix2));
[0127]y = H*(Iyl/(Iyl+Iy2))。
[0128]在本发明实施例中,针对移动操作,则可以直接计算相对于调整后的触摸屏的虚拟原点的坐标位置。
[0129]例如,如图5B所示,假设偏移量为(Δχ,Ay),移动后的触摸屏的触屏区域501’的虚拟原点502’的坐标为(Λχ,Ay),则可以触摸屏501的左、上、右、下边的测得电流分别为1x1、IyU 1x2、Iy2计算触摸点503的触摸点坐标:
[0130]X = W*(Ixl/(Ixl+Ix2));
[0131]y = H*(Iyl/(Iyl+Iy2))。
[0132]则触摸点503的坐标位置为(X- Λ X,y- Λ y)。
[0133]当然,上述坐标位置的计算方式只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他坐标位置的计算方式,本发明实施例对此不加以限制。另外,除了上述坐标位置的计算方式外,本领域技术人员还可以根据实际需要采用其它坐标位置的计算方式,本发明实施例对此也不加以限制。
[0134]步骤203,将所述触摸事件发送至,在显示屏中原始位置为所述坐标位置的窗口,以驱动所述窗口所属的应用执行相应的操作。
[0135]在本发明实施例中,可以在应用层将所述触摸事件发送至,在显示屏中原始位置为所述坐标位置的窗口。
[0136]在具体实现中,触摸事件映射之后获得的坐标位置,反映的是窗口的原始位置,可以直接发送至相应的窗口进行处理。
[0137]需要说明的是,本发明实施例中所指将触摸事件发送至窗口,可以指将该触摸事件发送至窗口对应的进程或线程,由该进程或线程属于某个应用,该进程或线程按照预先设置的规则执行相应的操作。
[0138]例如,某个窗口中的控件为输入法应用的空格键,若触摸事件表征单击操作,则输入空格,若触摸事件表征长按操作,则切换语音输入等等。
[0139]在本发明的一种有限实施例中,步骤203可以包括如下子步骤:
[0140]子步骤S31,输入监听器获取存储在窗口状态类中的窗口数据;所述窗口数据包括原始位置;
[0141]子步骤S32,输入监听器将所述触摸事件发送至,窗口数据中原始位置为所述坐标位置的窗口,以驱动所述窗口所属的应用执行相应的操作。
[0142]如图6所示,在Andro i d系统中,从设计的角度来看,窗口管理系统是基于C/S(Server/Client,服务端/客户端)模式的。
[0143]整个窗口管理系统可以分为服务端(Server)和客户端(Client)两大部分,客户端负责请求创建窗口和使用窗口,服务端完成窗口的维护,窗口显示等。
[0144]在客户端(Client),并不是直接与WindowManagerService (窗口管理服务)交互,而是直接和本地对象WindowManager (窗口管理器)交互,然后由WindowManager完成与WindowManagerService 的交互。
[0145]对于Android系统中的应用来说这个交互是透明的,应用一般不会感知到WindowManagerService 的存在。
[0146]在Android系统的应用框架中,窗口主要分为两种:
[0147]第一种是应用的窗口:一个Activity组件(布满整个窗口或者悬浮于其他窗口上的交互界面,在一个应用中通常由多个Activity构成)有一个主窗口,弹出的对话框也有一个窗口,Menu(菜单)也是一个窗口,等等。在同一个Activity中,主窗口、对话框、Menu的窗口之间通过该Activity关联起来。
[0148]第二种是公共界面的窗口:如最近运行对话框、关机对话框、状态栏下拉栏、锁屏界面等。这些窗口都是系统级别的窗口,不从属于任何应用,和Activity没有关系。
[0149]Android系统的窗口管理是基于C/S模式的,并且使用独立进程的方式实现。
[0150]窗口管理的服务端WindowManagerService运行在独立的进程system_server (系统服务)里,当应用需要创建窗口时,通过进程通信的方式请求WindowManagerService创建窗口,由WindowManagerService向应用程序传递和窗口相关的交互消息。所有应用的窗口都在服务端管理,窗口的显不和控制都在WindowManagerService里处理。
[0151]WindowManagerService主要完成了以下几部分功能:
[0152]1、窗口的添加和删除;
[0153]2、窗口的显示和隐藏控制;
[0154]3、Z-order 顺序管理;
[0155]4、焦点窗口和焦点应用的管理;
[0156]5、输入法窗口管理和墙纸窗口管理;
[0157]6、转场动画;
[0158]7、系统消息收集和分发。
[0159]服务端(Server)的核心的几个类是:
[0160]WindowManagerService.java
[0161]WindowState.java
[0162]WindowToken.java
[0163]AppffindowToken.java
[0164]Sess1n, java
[0165]InputManager.java
[0166]InputMonitor.java
[0167]其中,WindowManagerService负责完成窗口的管理工作;
[0168]WindowState (窗口状态类)与客户端窗口是——对应的,即每个窗口都具有一个WindowState,应用调用WindowManager.addView()创建窗口时,会在WindowManagerService 添加一个 WindowState 与之--对应。
[0169]InputMonitor (输入监听器)负责上层的消息分发功能。
[0170]在实际应用中,WindowState保存了其对应的窗口的几乎所有属性及状态数据,可以说WindowState就代表窗口。
[0171]WindowManagerService可以通过WindowState的属性及状态数据来管理窗口的状态,包括层次,焦点分配,位置布局等。
[0172]WindowState的大部分数据在窗口创建时生成,部分状态数据及调整数据由WindowManagerService 来控制使用。
[0173]在具体实现中,触摸事件中映射之后获得的坐标位置,反映的是窗口的原始位置,可以直接发送至相应的窗口进行处理。
[0174]需要说明的是,本发明实施例中所指将触摸事件发送至窗口,可以指将该触摸事件发送至窗口对应的进程或线程,由该进程或线程执行相应的操作。
[0175]在本发明实施例中,WindowManagerService向InputMonitor发送一个通知,InputMonitor接收到该通知后,可以从WindowState中获取窗口数据。
[0176]窗口在创建时,可以向系统底层注册事件回调函数,通过InputMonitor监听触摸事件。
[0177]触摸屏事件发生时,InputManager通过InputManager.Callbacks类响应回调,在回调里再调用WindowManagerService.1nputMonitor来接收触摸事件。
[0178]InputMonitor找到当前窗口(WindowState)对应的事件处理接口(InputffindowHandle),以移动后的参数进行处理,并将处理结果上报给当前窗口。
[0179]本发明实施例按照调整数据调整在显示屏中的显示区域和触摸屏中的触屏区域,基于调整后的触屏区域中计算发生触摸事件的坐标位置,并将该触摸事件发送至,在显示屏中原始位置为该坐标位置的窗口,以执行相应的操作,通过触摸屏硬件的特性进行触控操作:
[0180]其一,系统上层提供调整数据,而不需要进行大的改动,可移植性强;
[0181]其二,窗口及其位置的逻辑关系不发生改变,将触摸事件进行映射上报即可,避免了二次转发,大大提高了稳定性;
[0182]其三,避免对触屏数据重新转换,事件数据的精准度高;
[0183]其四,对触摸事件没有进行逻辑及状态改变,不影响原始应用,大大减少了兼容性问题,复杂度小。
[0184]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1