CN117311586A - 手写输入方法及终端 - Google Patents
手写输入方法及终端 Download PDFInfo
- Publication number
- CN117311586A CN117311586A CN202210731487.5A CN202210731487A CN117311586A CN 117311586 A CN117311586 A CN 117311586A CN 202210731487 A CN202210731487 A CN 202210731487A CN 117311586 A CN117311586 A CN 117311586A
- Authority
- CN
- China
- Prior art keywords
- canvas
- event
- handwriting
- control
- application
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
手写输入方法及终端,涉及终端技术领域,可以实现终端上落笔即开始输入文字,提升手写体验,该方法具体包括:检测应用窗口的输入控件,在应用窗口上输入控件的对应位置设置第一画面,第一画面为接近透明;响应于检测到作用于第一画面的第一事件,在该应用窗口上设置第二画布,第二画布的尺寸大于第一画面,且第二画布为接近透明,第二画布用于接收用户的书写操作,并呈现书写笔迹;根据第二画布上的书写笔迹在应用窗口的输入控件中显示对书写笔迹的识别结果。
Description
技术领域
本申请涉及终端技术领域,尤其涉及手写输入方法及终端。
背景技术
目前,用户想在终端(例如Windows系统的平板电脑)上书写文字时,需要先使用手写笔点击应用界面中的输入控件后抬起手写笔,应用弹出手写框,而后用户便可以使用手写笔在手写框中进行输入,可见现有的终端上的手写体验不佳。
发明内容
本申请提供的手写输入方法及终端,可以实现在终端上落笔即开始输入文字,提升手写体验。
为了实现上述目的,本申请实施例提供了以下技术方案:
第一方面、提供一种手写输入方法,该方法包括:检测应用窗口中的输入控件;在应用窗口中输入控件的对应位置上设置第一画布,第一画布的透明度大于或等于第一阈值(即第一画布设置为接近透明或半透明);响应于作用在第一画布上的第一事件(即用户在应用窗口的输入控件中开始书写的事件,例如用户使用手写笔/手指/鼠标接触第一画布位置的事件),在应用窗口上层设置第二画布;其中,第二画布用于接收用户的书写操作,并呈现书写笔迹;第二画布的尺寸大于第一画布的尺寸,且第二画布的透明度大于或等于第一阈值(即第二画布设置为接近透明或半透明);根据第二画布上书写笔迹在应用窗口的输入控件中显示第二画布上书写笔迹的识别结果。
其中,第一画布设置为接近透明或半透明,即第一画布为非透明。一方面,将第一画布设置为非透明,是为了使用第一画布拦截用户在输入控件位置的输入操作。另一方面,第一画布接近透明或半透明,故不会遮挡应用窗口输入控件的内容,使得用户不易察觉到第一画布,不影响前景窗口的用户体验。类似的,第二画布的透明度可设置为接近透明或半透明。一方面,第二画布可以拦截用户的书写操作。另一方面,第二画布不会遮挡前景窗口输入控件的内容,使得用户不易察觉到第二画布,不影响应用窗口的用户体验。
在一些实施例中,第二画布和第一画布为不同的窗口。在一个示例中,先设置第一画布,在需要使用第二画布时设置第二画面。例如,当终端检测出应用窗口的输入控件后,终端在应用窗口的输入控件位置设置第一画布,用于检测第一事件。当检测到第一事件后,终端设置尺寸更大的第二画布(例如第二画布为全屏窗口),由第二画布继续接收用户的书写操作,呈现用户的书写笔迹。在另一个示例中,终端也可以提前设置第二画布。例如在启动手写板应用之后就设置第二画布,此时第二画布的透明属性设置为透明。当检测到在第一画布的第一事件后,再将第二画布设置为不透明,例如接近透明或半透明。那么,第二画布可以接收用户的书写操作,呈现用户的书写笔迹。总之,本申请实施例不限定手写板应用设置第一画布和第二画布的时机不做具体限定。
在其他一些实施例中,第二画布和第一画布也可以为同一窗口。即,通过调整第一画布的尺寸得到第二画布。那么,当检测到在第一画布处发生第一事件时,终端直接调大第一画布的尺寸,得到第二画布。由调大尺寸的第二画布继续接收用户的书写操作,呈现用户的书写笔迹。
由上可见,本申请通过检测出前景窗口中的输入控件,并在输入控件的位置设置接近透明或半透明的第一画布,用于拦截用户意在输入控件执行的第一事件(即用户在前景窗口的输入控件中开始书写的事件)。当在第一画布处检测到第一事件后,终端设置尺寸更大的第二画布(例如第二画布为全屏窗口),由第二画布继续接收用户的书写操作,呈现用户的书写笔迹。由此实现用户落笔即开始书写的功能,提升了终端的手写体验。
在一种可能的实现方式中,第二画布为全屏窗口,或者,第二画布的尺寸与应用窗口的尺寸相同。由此,本申请扩大了用户书写的操作区域,提升用户的手写舒适度。
在一种可能的实现方式中,检测应用窗口中的输入控件,包括:调用用户界面自动化UIA接口检测应用窗口的输入控件。由此提供了一种检测应用窗口中的输入控件的方法,该方法无需修改终端原生的操作系统,该检测方法普适度更高。
在一种可能的实现方式中,调用用户界面自动化UIA接口检测应用窗口的输入控件,包括:调用用户界面自动化UIA接口获取应用窗口中各个控件的信息;当根据各个控件的信息确定应用窗口中第一控件的类型为预设类型,且第一控件的属性为预设类型对应的预设属性时,确定第一控件为应用窗口的输入控件;其中,预设类型包括编辑控制类型、下拉列表类型、以及文档控制类型中一项或多项;预设属性包括可被键盘聚焦、非只读、有键盘焦点中一项或多项。
在一种可能的实现方式中,该方法还包括:在检测应用窗口中的输入控件的过程中,还获取应用窗口中各个控件的类型和/或风格说明,并根据各个控件的类型和/或风格说明确定应用窗口中的输入控件。由此提供了另一种检测应用窗口中输入控件的方法。该方法可以独立使用,也可以和其他方法结合使用,提高检测的准确性。
在一种可能的实现方式中,该方法还包括:在检测到作用于第一画布的第一事件时,关闭第一画布。如此,可由应用窗口上的第二画布接收用户的书写操作。可选的,也可以将第一画布设置为透明的,使得第一画布不影响第二画布接收用户的书写操作。
在一种可能的实现方式中,在应用窗口中输入控件的对应位置上设置第一画布之后,该方法还包括:当监测到应用窗口的变化事件后,重新检测应用窗口变化后的输入控件,并更新在应用窗口上层设置的第一画布;其中,应用窗口的变化事件包括:用户切换应用窗口的事件,应用窗口中界面跳转事件,应用窗口中控件的位置和/或大小发生变化的事件中一项或多项。如此,提供一种
在一种可能的实现方式中,第一事件为手写笔down事件,手指触摸的down事件,鼠标操作的down事件的任一项。
在一种可能的实现方式中,在根据第二画布上书写笔迹在应用窗口的输入控件中显示第二画布上书写笔迹的识别结果之前,该方法还包括:当检测到作用于第二画布的第二事件后,识别第二画布上的书写笔迹。也就是说,当用户在第二画布上书写一段时间后抬起(例如抬起后预设时长后)时,终端可以开始识别第二画布上的书写笔迹。
在另外一些实施例中,终端也可以在其他时机开始识别第二画布上的书写笔迹,例如周期性识别第二画布上已有的书写笔迹。本申请实施例对终端识别第二画布上的书写笔迹的时机和识别方法均不做限定。
在一种可能的实现方式中,当第一事件为手写笔down事件时,第二事件为手写笔的up事件;当第一事件为手指触摸的down事件时,第二事件为手指触摸的up事件;当第一事件为鼠标操作的down事件时,第二事件为鼠标操作的up事件。
在一种可能的实现方式中,该方法还包括:检测到作用于第一画布的第三事件时,修改第一画布的透明度为小于第一阈值;其中,第三事件与第一事件不同;显示手写框,手写框用于接收用户的书写操作,并呈现书写笔迹。
考虑到用户使用不同的输入方式(如手写笔输入、手指触摸输入、鼠标输入)时,操作的意图可能不同。为此,本申请实施例还可以区分不同输入方式(即区分第一事件和第三事件),并针对不同的输入方式实现不同的手写体验。例如,当手写笔落笔在输入控件(即检测到第一事件)后即开始书写。当手指或鼠标点击输入控件(即检测到第三事件)后,不能实现落笔即开始书写的功能,而是在检测到手指或鼠标的点击操作后,弹起手写框,手指和鼠标仍然需要在手写框中进行书写。又例如,当手写笔或手指落笔在输入控件(即检测到第一事件)后即开始书写。当鼠标点击输入控件(即检测到第三事件)后,弹起手写框,鼠标仍然需要在手写框中进行书写。
在一种可能的实现方式中,显示手写框,包括:应用窗口所属的应用绘制手写框。
在一种可能的实现方式中,第一事件为手写笔down事件;第三事件为手指触摸的down事件或鼠标操作的down事件。
在一种可能的实现方式中,应用窗口为前景窗口。
第二方面、提供一种终端,包括:处理器、存储器和触摸屏,所述存储器、所述触摸屏与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以使得终端执行如上述方面及其中任一种可能的实现方式中所述的方法。
第三方面、提供一种装置,该装置包含在终端中,该装置具有实现上述方面及可能的实现方式中任一方法中终端行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括至少一个与上述功能相对应的模块或单元。例如,接收模块或单元、显示模块或单元、以及处理模块或单元等。
第四方面、提供一种计算机可读存储介质,包括计算机指令,当计算机指令在终端上运行时,使得终端执行如上述方面及其中任一种可能的实现方式中所述的方法。
第五方面、提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述方面中及其中任一种可能的实现方式中所述的方法。
第六方面、提供一种芯片系统,包括处理器,当处理器执行指令时,处理器执行如上述方面中及其中任一种可能的实现方式中所述的方法。
第二方面提供的终端、第三方面提供的装置、第四方面提供的计算机可读存储介质、第五方面提供的计算机程序产品以及第六方面提供的芯片系统所能达到的技术效果可以参考第一方面以及第一方面中任一种可能的实现方式中有关技术效果的描述,这里不再赘述。
附图说明
图1为本申请实施例提供的一种终端的结构示意图;
图2为本申请实施例提供的另一种终端的结构示意图;
图3为本申请实施例提供的一种手写方法的流程示意图;
图4为本申请实施例提供的一种终端的用户界面示意图;
图5为本申请实施例提供的一种终端界面的控件的组织关系的示意图;
图6为本申请实施例提供的又一种终端的用户界面示意图;
图7为本申请实施例提供的又一些终端的用户界面示意图;
图8为本申请实施例提供的又一些终端的用户界面示意图;
图9A为本申请实施例提供的另一种手写方法的流程示意图;
图9B本申请实施例提供的又一些终端的用户界面示意图;
图10为本申请实施例提供的又一种终端的结构示意图;
图11为本申请实施例提供的又一种手写方法的流程示意图;
图12为本申请实施例提供的又一种手写方法的流程示意图。
具体实施方式
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例提供一种手写输入方法,可应用于具有触摸屏的终端上,可接收手写笔和/或用户手指在触摸屏上的操作,实现对终端的操控(包括在触摸屏上滑动输入文字等)。可选的,该终端还可以接收鼠标输入,实现对终端的操作。
示例性的,本申请实施例中终端例如可以为手机、平板电脑、个人计算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、上网本、可穿戴终端(如智能手表、增强现实技术(augmented reality,AR)设备、虚拟现实(virtualreality,VR)设备等)、车载设备、智慧屏、智能汽车、智能音响等,本申请对该终端的具体形式不做特殊限制。
图1示出了终端100的结构示意图。
终端100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对终端100的具体限定。在本申请另一些实施例中,终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端100的结构限定。在本申请另一些实施例中,终端100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端100上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端100可以包括1个或N个显示屏194,N为大于1的正整数。
终端100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端100可以支持一种或多种视频编解码器。这样,终端100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端100的各种功能应用以及数据处理。
终端100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。终端100可以设置至少一个麦克风170C。在另一些实施例中,终端100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动终端平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端100可以接收按键输入,产生与终端100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端100的接触和分离。终端100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。终端100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端100中,不能和终端100分离。
需要说明的是,终端100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。例如终端100的软件系统可以为Android系统、鸿蒙系统、Windows系统等。下面以Windows系统为例,介绍终端100的软件结构示意图。如图2所示,Windows系统是分层的架构,包括用户态(或称为用户模式)和内核态(或称为内核模式,也可以成为操作系统)。
其中用户态的组件包括系统支持进程、服务进程、用户应用程序、环境子系统以及子系统动态链接库(Dynamic Link Library或者Dynamic-link Library,DLL)等。
上述系统支持进程,包括登陆进程(如Winlogon.exe)、会话管理器(如Smss.exe)、空闲进程(Idle进程,一种特殊进程,是空闲线程的载体)、系统进程(包含大多数内核模式的系统进程)、本地安全和认证进程(如Lsass.exe)、以及为系统开发自带的应用程序(例如设置应用)等。
在本申请的一些示例中,设置应用中可以设置功能开关,该手写功能开关用于用户选择允许或禁止启动手写板应用。
上述服务进程,独立于用户登录运行的Windows服务,与用户无关的Windows服务。例如,任务调度服务(Task Sechedular)和打印(Print Spooer)服务。
上述用户应用程序,包括用户安装的三方应用。例如,在本申请一些示例中,用户应用程序可以包括手写板应用,该手写板应用可以实现手写笔(或手指或鼠标)接触界面中的输入控件(即落笔或点击输入控件)后,即可开始书写操作。而不是如背景技术中介绍的,手写笔(或手指或鼠标)接触界面中的输入控件并抬手后,终端再显示特定的手写框,用户需要再次使用手写笔(或手指)在特定的手写框中进行书写操作。可见,落笔即开始书写的手写功能简化了用户的操作,提升基于Windows系统的手写体验。
可选的,该手写板应用还可以实现手写笔(或手指或鼠标)在全屏范围进行书写,进一步提升用户的手写体验。
在本申请的另一些示例中,手写板应用还可以区分手写笔输入、手指触摸输入、鼠标输入,针对不同的输入实现不同的手写体验。例如,当手写笔落笔在输入控件后即开始书写。当手指或鼠标点击输入控件后,不能实现落笔即开始书写的功能,而是在检测到手指或鼠标的点击操作后,弹起手写框,手指和鼠标仍然需要在手写框中进行书写。
需要说明的是,这里“手写板应用”仅是本申请为方便方案描述提供的一个名称,在一些示例中不能作为对方案的功能的限定。
上述环境子系统服务进程:实现操作系统环境支持的部分。例如,提供多种的环境子系统,以支持运行多种类型的应用软件。
需要说明的是,上述的服务进程和用户应用程序并不直接调用原生的Windows系统服务,而是通过一个或者多个子系统DLL来发起调用。其中子系统DLL主要是将一个文档化的函数转换为一些恰当的内部原生系统服务调用。
其中内核态的组件包括:执行体、内核、设备驱动程序(Device Driver)、硬件抽象层(Hardware Abstraction Layer,HAL)、窗口和图形系统。
上述执行体包括基本的操作系统服务,比如内存管理、进程和线程管理、安全性、I/O管理、网络和跨进程通信等。上述内核包括一些底层的操作系统功能,比如线程调度、终端和异常分发、以及多处理器同步等。上述设备驱动程序包括硬件设备驱动程序(例如手写笔驱动、鼠标驱动、触控驱动等)、文件系统驱动程序、文件系统过滤驱动,网络重定向、协议驱动,内核流失过滤驱动等。其中硬件设备驱动程序将用户进程的IO函数调用转换成特定的硬件设备IO请求。上述硬件抽象层,用于实现Windows系统能够被移植到各类硬件平台,它是一个可加载的内核模块,针对不一样的硬件平台,提供了统一的服务接口。
上述窗口和图形系统实现了图形用户界面功能。在本申请的一些示例中,手写板应用在检测到应用窗口中的输入控件后,可以调用窗口和图形系统绘制第一画布,第一画布与应用窗口中的输入控件一一对应,且第一画布的尺寸和位置与相对应的输入控件的尺寸和位置一致,且位于应用窗口的上层。那么,第一画布可以实现拦截用户在输入控件位置执行的事件。当检测到用户在第一画布位置(即输入控件位置)执行的事件(如手写笔在输入控件位置落笔)后,手写板应用可以继续调用窗口和图形系统绘制第二画布,该第二画布位于应用窗口的上层。那么,第二画布可用于接收用户的书写输入,从而实现落笔即开始书写的功能。可选的,第二画布的尺寸可以设置为全屏,从而实现手写笔在全屏范围内书写的功能。具体的实现方案将在下文展开说明。
可以理解的是,在一些场景中,终端可能同时显示多个应用窗口。那么,手写板应用可以检测所有的应用窗口的输入控件,并针对所有的应用窗口的输入控件均设置第一画布。手写板应用也可以检测其中的前景窗口(foreground window,即用户正在操作的窗口),并仅针对前景窗口识别其中的输入控件,并针对前景窗口的输入控件设置第一画布。由此,可以降低终端的运行负荷。本文中以识别终端中的前景窗口为例,对实现落笔即开始书写的功能进行详细说明。
以下实施例中所涉及的技术方案均可以在具有图1和图2所示架构的终端100中实现。下面结合附图对本申请实施例提供的技术方案进行详细说明。
如图3所示,为本申请实施例提供的一种手写输入方法的流程示意图,该方法包括:
S301、终端获取前景窗口包含的控件信息。
在一些示例中,在用户启动手写板应用,手写笔应用开始获取前景窗口包含的控件,即开始执行步骤S301以及后续步骤。在另一些示例中,手写板应用所实现的功能也可以由Windows系统的系统服务实现,即由Windows系统的内核模式中系统服务实现,这里不再一一赘述。
S302、终端根据前景窗口包含的控件信息,识别出前景窗口中的输入控件。
在步骤S301-步骤S302中,前景窗口是指用户正在操作的窗口,也即标题栏为激活状态的窗口。
在一些示例中,终端显示桌面(实质上为桌面应用的一个界面)时,桌面可以为前景窗口。当用户通过桌面的应用图标启动其他应用后,当前用户正在操作的应用窗口为前景窗口。例如,如图4所示,终端中显示有多个应用窗口,分别为应用1的窗口和应用2的窗口。其中,应用1的窗口为用户正在操作的窗口,即为前景窗口。可以理解,Windows系统的窗口(例如桌面或应用1的窗口)包括多个控件(也可以称为UI元素,WindowsUI控件等),这多个控件包括但不限于按钮(Button)、编辑框(Edit)、下拉列表(ComboBox)、列表框(ListBox)、滚动条(Scrollbar)以及子窗口。
需要说明的是,应用界面中的控件通常包括两类:一类是应用是使用Windows系统自带的控件进行开发的,这类控件也称为Windows标准控件。在Windows系统的应用生态中,Windows标准控件的占比较小,目前约为15%。另一类是应用未使用Windows系统自带的控件进行开发的,例如,可以使用图形处理器(graphics processing unit,GPU)的接口开发应用的界面的控件,这类控件也称为自定义的控件。在Windows系统的应用生态中,自定义的控件的占比较大,目前约为85%。
针对Windows标准控件而言,Windows标准控件通常是采用Windows系统的应用程序接口(application programming interface,API)(例如CreateWindowEx)创建的,具有窗口句柄(handle)。那么终端可以根据窗口句柄调用Windows系统的API来查询控件的信息(例如类型,风格说明等),通过控件的信息确定其中的输入控件。例如,当控件的类型为预设类型(如Edit控件类型或RichEdit控件类型),包含特定的风格说明(如添加ES_开头的风格说明)时,可以确定该控件为输入控件。
但需要说明的是,在采用Windows系统的API(例如CreateWindowEx)创建界面中的输入控件时,并没有强制要求添加ES_开头的风格说明,因此,很多输入控件即使是采用Windows系统的API创建的Windows标准控件,但该控件可能不带ES_开头的风格说明。那么,通过使用Window系统的API查询到该控件的信息后,无法推测出该控件是否为输入控件。另外,在Windows系统的应用生态中,应用界面包含的Windows标准控件的占比本身较小。总而言之,能够根据控件的窗口句柄调用Windows系统的API来识别出输入控件的场景较少。
针对自定义的控件而言,自定义的控件由应用的开发人员自行绘制和管理的。例如,某个应用的最外层窗口(可以是该应用的根控件)可以使用Windows标准控件,内部的其他控件均可采用自定义的控件。然而,对于Windows系统来说,自定义的控件是不可见的。即,无法使用Windows系统的API来查询自定义的控件的信息。
为此,本申请实施例提供了一种检测输入控件的方法,可以借助于用户界面自动化(User Interface Automation,UIA)来检测出前景窗口包含的各个控件的信息。本文中为了区别于Windows系统的API查询到的控件的信息,这里将通过UIA接口查询到的控件的信息称为为控件的UIA信息。而后,根据各个控件的UIA信息确定前景窗口中输入控件的位置(如矩形控件的四个顶点的坐标)等信息。其中,UIA是Windows系统的一种辅助功能框架,旨在满足自动测试工具和辅助技术产品(如屏幕阅读器)的需求。UIA提供了一套自己定义的API(称为UIA的API,区别于Windows系统的API)、自己定义的界面(interface),及自己定义的界面模式,让应用开发人员遵循UIA的框架实现应用(包括这里的前景窗口)的相关界面,从而应用的使用者(如软件测试人员、残障人士等)更好地使用该应用软件。
总而言之,调用Window系统的API可以查询到控件的一套控件信息,调用UIA的接口可以查询到控件的另一套控件信息(即UIA信息)。如前所述,在调用Window系统的API可以查询的控件信息无法判断出控件是否为输入控件的场景中,可以通过调用UIA的接口查询到控件的UIA信息判断控件是否为输入控件。
如图5所示,为图4所示界面的一部分控件的结构示意图。由图5可知,该界面的根控件为桌面窗口,桌面窗口下包括一个或多个子控件1(例如桌面的任务栏、应用图标等)、子控件2(应用1的窗口)以及子控件3(应用2的窗口)。其中,子控件2下包括多个子控件(即应用1的界面中控件,如标题栏、按钮、文本框、编辑框等),分别为子控件21、子控件22以及子控件23等。子控件3下包括多个子控件(即应用2的界面中控件,如标题栏、按钮、文本框、编辑框等),分别为子控件31、子控件32以及子控件33等。
在具体实现中,终端可以通过调用UIA的API接口,先获取所有控件的UIA信息,包括桌面窗口(根控件)以及桌面窗口下所有子控件等的UIA信息,再从中确定出前景窗口(即应用1)包含的输入控件。或者,终端也可以先获取前景窗口的句柄,再根据前景窗口的句柄获取前景窗口的根控件的信息,再遍历该根控件下的子控件的UIA信息。其中根控件和各级子控件的UIA信息包括但不限于控件的类型、控件的属性。
其中,UIA信息中控件的类型包括但不限于应用栏(AppBar)控件类型、按钮(Button)控件类型、日历控件类型、复选框(CheckBox)控件类型、下拉列表(ComboBox)控件类型、数据表格(DataGrid)控件类型、数据项(DataItem)控件类型、文档控件类型、编辑(Edit)控件类型、组控件类型、标头控件类型、超链接控件类型、图像控件类型、列表控件类型、列表项(ListItem)控件类型、菜单控件类型、菜单栏(MenuBar)控件类型、菜单项(MenuItem)控件类型、窗格控件类型等。
其中,UIA信息中控件的属性,用于公开控件功能的特定方面,或来表示常见的控件行为。例如,控件的属性包括但不限于可被键盘聚焦、非只读、有键盘焦点。
在一些实施例中,当确定前景窗口中控件的类型为预设类型,且控件的属性为该预设类型对应的预设属性时,确定该控件为输入控件。其中,预设类型包括但不限于编辑控制(EditControl)类型、下拉列表(ComboBox)类型、以及文档控制(DocumentControl)类型。其中,预设属性包括但不限于可被键盘聚焦、非只读、有键盘焦点。
在一个示例中,编辑控制(EditControl)类型对应的预设属性包括可被键盘聚焦、非只读。例如,当控件的类型为编辑控制类型时,进一步确定该控件的属性为可被键盘聚焦或非只读,那么确定该控件为输入控件。
下拉列表(ComboBox)类型对应的预设属性包括非只读、有键盘焦点。又例如,当控件的类型为下拉列表类型时,进一步确定该控件的属性为非只读或有键盘焦点,那么确定该控件为输入控件。
文档控制类型对应的预设属性为非只读。又例如,当控件的类型为文档控制类型时,进一步确定该控件的属性为非只读,那么确定该控件为输入控件。
由此,确定出前景窗口的输入控件,并获取输入控件的位置(例如矩形控件的四个顶点的坐标)等信息。
如图4所示,前景窗口为应用1的窗口,应用1的窗口包括应用栏(AppBar)、多个按钮(Button)控件(如关闭控件、最大化控件、最小化控件、更多控件、返回“新建邮件”按钮等)、以及多个文本框(例如文本框401至文本框405)。其中,文本框401至文本框405均属于编辑控制(EditControl)类型,且文本框401至文本框403的属性为非只读,文本框404和文本框405的属性为只读,于是可以确定文本框401至文本框403为输入控件。进一步获取文本框401至文本框403中各个控件的位置信息。
还需要说明的是,终端还可以通过UIA的API订阅前景窗口的变化事件。也就是说,当前景窗口中控件发生变化时,终端重新获取前景窗口的控件的UIA信息,重新确定前景窗口的输入控件的信息。其中,前景窗口的控件发生变化,包括用户切换当前正在操作的窗口(例如前景窗口从应用1的窗口切换为应用2的窗口),前景窗口界面发生切换(例如应用1界面1切换为界面2),前景窗口中控件的位置和/或大小等发生变化(例如前景窗口从小窗口模式切换到全屏模式)等。
S303、终端根据前景窗口中输入控件的位置,在前景窗口的上层设置第一画布。
在一个示例中,所述第一画布的尺寸和位置与前景窗口中输入控件的尺寸和位置均一致。或者,第一画布的尺寸略大于输入控件的尺寸,或者,第一画布的尺寸略小于输入控件的尺寸。可选的,第一画布可设置为接近透明或半透明,如透明度大于或等于阈值1(例如为0.3),且小于阈值2(例如为1)。其中,阈值2为画布被设置为不透明的属性值。也就是说,此时第一画布为非透明。一方面,将第一画布设置为非透明,是为了使用第一画布拦截用户在输入控件位置的输入操作。另一方面,第一画布接近透明或半透明,故不会遮挡前景窗口输入控件的内容,使得用户不易察觉到第一画布,不影响前景窗口的用户体验。
如图6所示,在识别出应用1的窗口中的输入控件为文本框401至文本框403后,可以根据文本框401至文本框403的位置信息(如四个顶点的坐标),在文本框401上层设置窗口501,在文本框402上层设置窗口502,在文本框403上层设置窗口503。在一些示例中,窗口501的尺寸和位置与文本框401的尺寸和位置一致。窗口502的尺寸和位置与文本框402的尺寸和位置一致。窗口503的尺寸和位置与文本框403的尺寸和位置一致。图6中未示出文本框401至文本框403。可选的,窗口501至窗口503可以设置为接近透明或半透明,那么窗口501至窗口503可以透出文本框401至文本框403中的内容。换言之,增加的窗口501至窗口503并不影响用户正常查看前景窗口中的内容,以及对前景窗口中的控件的操作。
S304、当检测到作用于第一画布的第一事件时,终端在前景窗口上层设置第二画布,第二画布的尺寸大于第一画布的尺寸。其中,第二画布用于显示用户的书写笔迹。终端关闭第一画布。可选的,终端也可以不关闭第一画布,而是隐藏第一画布,或者将第一画布设置为透明。
其中,第一事件为用户使用手写笔/手指/鼠标接触输入控件位置(即第一画布位置)的事件。例如,第一事件为终端检测到在输入控件位置(即第一画布位置)的down事件,可以包括手写笔的down事件,手指触摸的down事件,鼠标操作的down事件的任一项或任几项。
示例性的,如图7中(1)所示,当用户想要在输入控件403(即窗口503)中输入文字时,用户可以使用手写笔在窗口503上开始书写。当手写笔落笔在窗口503上时,终端检测到书写笔作用在位置601处的down事件(即第一事件),终端关闭(或隐藏)窗口503或者将窗口503的设置为透明。可选的,终端还可以一并关闭(或隐藏)窗口501和窗口502。并且,终端在前景窗口上层设置第二画布。第二画布的尺寸大于第一画布。第二画布可以占据前景窗口的大部分区域,如图7中(2)所示的窗口602。或者,第二画布可以占据前景窗口的全部区域,如图7中(3)所示的窗口602。又或者,第二画布可以占据终端的全部屏幕,即第二画布为全屏窗口,如图7中(4)所示的窗口602。在一个实施例中,用户在手写笔落笔后即可以开始书写。由于第二画布位于前景窗口的最上层,那么第二画布可以接收到用户的书写操作,并根据用户的书写操作呈现用户的书写笔迹。
可选的,第二画布的透明度可设置为接近透明或半透明,如第二画布的透明度大于或等于阈值1(例如为0.3),且小于阈值2(例如为1)。这样,一方面,第二画布可以拦截用户的书写操作。另一方面,第二画布接近透明或半透明,故不会遮挡前景窗口输入控件的内容,使得用户不易察觉到第二画布,不影响前景窗口的用户体验。
需要说明的是,在一些实施例中,第二画布和第一画布为不同的窗口。在一个示例中,先设置第一画布,在需要使用第二画布时设置第二画面。例如,当终端检测出前景窗口的输入控件后,终端在前景窗口的输入控件位置设置第一画布,用于检测第一事件(即用户在前景窗口的输入控件中开始书写的事件)。当检测到第一事件后,终端设置尺寸更大的第二画布(例如第二画布为全屏窗口),由第二画布继续接收用户的书写操作,呈现用户的书写笔迹。在另一个示例中,终端也可以提前设置第二画布。例如在启动手写板应用之后就设置第二画布,此时第二画布的透明属性设置为透明。当检测到在第一画布的第一事件后,再将第二画布设置为不透明,例如接近透明或半透明。那么,第二画布可以接收用户的书写操作,呈现用户的书写笔迹。总之,本申请实施例不限定手写板应用设置第一画布和第二画布的时机不做具体限定。
在其他一些实施例中,第二画布和第一画布也可以为同一窗口。即,通过调整第一画布的尺寸得到第二画布。那么,当检测到在第一画布处发生第一事件时,终端直接调大第一画布的尺寸,得到第二画布。由调大尺寸的第二画布继续接收用户的书写操作,呈现用户的书写笔迹。
需要说明的是,本申请中将画布(例如第一画布或第二画布)设置为透明,并不要求画布的透明度严格等于0,可以包括画布的透明度在0的附近,即画布的透明度小于阈值1。当画布大于或等于阈值1时,认为画布为非透明的。
S305、当检测到作用于第二画布的第二事件后,且在预设时长1(例如为1s)内未检测到作用于第二画布的第一事件时,终端识别第二画布上的书写笔迹。
其中,第二事件为用户抬起手写笔/手指/鼠标的事件。例如,当第一事件为手写笔的down事件时,第二事件为手写笔的up事件。当第一事件为手指触摸的down事件时,第二事件为手指触摸的up事件。当第一事件为鼠标操作的down事件时,第二事件为鼠标操作的up事件。
其中,第二画布上的书写笔迹为手写笔/手指/鼠标在第二画布上移动的轨迹。
示例性的,接着图7所示的例子,检测到作用于第一画布的手写笔的down事件(即第一事件)后,终端显示第二画布。这里以第二画布占据终端整个屏幕为例进行说明。也就是说,此时用户使用手写笔可以在全屏进行书写。如图8中(1)所示,用户直接使用手写笔书写文字。可以注意到,此时用户书写文字可以不受输入控件503的大小限制。如图8中(2)所示,当用户完成本次输入的最后一笔后,在位置602处抬起手写笔时,终端检测到作用于第二画布的第二事件。并且,在检测到作用于第二画布的第二事件后的预设时长1(例如1s)内未检测到作用于第二画布的第一事件(手写笔的down事件),终端根据手写笔在第二画布上移动的轨迹,检测出该轨迹对应的文字和/或符号,如图8中(3)所示,在输入控件503中显示相应的显示文字和/或符号。
在另外一些实施例中,终端也可以在其他时机开始识别第二画布上的书写笔迹,例如周期性识别第二画布上已有的书写笔迹。本申请实施例对终端识别第二画布上的书写笔迹的时机和识别方法均不做限定。
S306、终端在前景窗口的输入控件内显示识别结果,终端在前景窗口的输入控件上层重新设置第一画布。可选的,终端关闭(或隐藏)第二画布。
可以理解的是,第一画布设置为接近透明或半透明,那么用户可以看到前景窗口中输入控件中显示的识别结果。并且,进一步的,第一画布可以继续拦截用户在输入控件位置的操作。换言之,当用户继续在输入控件位置直接书写,那么终端继续执行上述步骤S304-步骤S306。
需要说明的是,如果在步骤S304中终端没有关闭第一画布,而是隐藏第一画布,或者将第一画布设置为透明时,那么终端无需重新设置第一画布,直接将第一画布设置为接近透明或半透明。
综上可见,本申请实施例提供了一种手写输入方法,该方法通过检测出前景窗口中的输入控件,并在输入控件的位置设置接近透明或半透明的第一画布,用于拦截用户意在输入控件执行的第一事件(即用户在前景窗口的输入控件中开始书写的事件)。当在第一画布处检测到第一事件后,终端设置尺寸更大的第二画布(例如第二画布为全屏窗口),由第二画布继续接收用户的书写操作,呈现用户的书写笔迹。由此实现用户落笔即开始书写的功能,提升了终端的手写体验。
在上述实施例中,终端无需区分不同的输入方式,而是针对各个输入方式均实现了落笔即开始书写的功能。而在本申请另一些实施例中,考虑到用户使用不同的输入方式(如手写笔输入、手指触摸输入、鼠标输入)时,操作的意图可能不同。为此,本申请实施例还提供了一种手写输入方法,可以区分不同输入方式,并针对不同的输入方式实现不同的手写体验。
例如,当手写笔落笔在输入控件后即开始书写。当手指或鼠标点击输入控件后,不能实现落笔即开始书写的功能,而是在检测到手指或鼠标的点击操作后,弹起手写框,手指和鼠标仍然需要在手写框中进行书写。又例如,当手写笔或手指落笔在输入控件后即开始书写。当鼠标点击输入控件后,弹起手写框,鼠标仍然需要在手写框中进行书写。
图9A以当手写笔落笔在输入控件后即开始书写。当手指或鼠标点击输入控件后,弹起手写框为例进行说明。如图9A所示,为本申请实施例提供的又一种手写输入方法的流程示意图,该方法包括:
S901、终端获取前景窗口包含的控件信息。
S902、终端根据前景窗口包含的控件信息,识别出前景窗口中的输入控件。
S903、终端根据前景窗口中输入控件的位置,在前景窗口的上层设置第一画布。
其中,步骤S901-步骤S903请参考前文中步骤S301-步骤S302中相关内容,这里不再赘述。
S904、当检测到作用于第一画布的第三事件时,终端在前景窗口上层设置第二画布,第二画布的尺寸大于第一画布的尺寸。其中,第二画布用于显示用户的书写笔迹。终端关闭第一画布,或者将第一画布设置为透明。
其中,第三事件为手写板应用关注的事件,例如为手写笔的down事件。
在一些示例中,终端可以通过调用Windows系统的API(例如Win32 API的SetWindowsHookEx)来获取第一画布处的输入事件,并进一步分析输入事件中特定标志位来区分该输入事件为手写笔的down事件、手指触摸的down事件或鼠标操作的down事件。当输入事件为手写笔的down事件时,确定检测到在第一画布处发生第三事件。
S905、当检测到作用于第二画布的第四事件后,且在的预设时长1(例如为1s)内未再次检测到作用于第二画布的第三事件时,终端识别第二画布上的书写笔迹。本申请对于识别书写笔迹的时机不做具体限制。
其中,第四事件例如为手写笔的up事件。
S906、终端在前景窗口的输入控件内显示识别结果,并在前景窗口的输入控件上层重新设置第一画布或者将第一画布的透明度恢复为接近透明或半透明。可选的,终端关闭(或隐藏)第二画布。
上述步骤S904-步骤S906中的其他内容可参考上述步骤S304-步骤S306中相关内容,这里不再赘述。
需要说明的是,下述步骤S907可以在步骤S906之后执行,也可以在步骤S903之后执行。
S907、当检测到作用于第一画布的第五事件时,终端设置第一画布为透明。其中,第五事件与第三事件不同。可选的,终端启动定时器开始计时,定时时长为预设时长2。
其中,第五事件为手写板应用不关注的事件,例如为手指触摸的down事件或鼠标操作的down事件。设置第一画布为透明,例如将第一画布的透明度设置为等于0,或者小于阈值1(例如0.3)。
在一些示例中,终端可以通过调用Windows系统的API(例如Win32 API的SetWindowsHookEx)来获取第一画布处的输入事件,并进一步分析输入事件中特定标志位来区分该输入事件为手写笔的down事件、手指触摸的down事件或鼠标操作的down事件。当输入事件为手指触摸的down事件或鼠标操作的down事件时,确定检测到在第一画布处发生第五事件。第五事件为手写板应用不关注的事件,即不需要实现落笔即开始书写功能的输入事件,那么终端将第一画布设置为透明,以便将检测到第五事件透传给第一画面下方的输入控件。另外,启动定时器,用于在定时器定时结束时,将第一画布恢复为接近透明或半透明,便于在第一画布拦截后续作用于在输入控件的第三事件,即手写板应用关注的输入事件。
S908、在第一画布的透明属性生效后,终端在前景窗口中显示手写框,该手写框用于接收用户的书写操作。
示例性的,如图9B中(1)所示,当设置在输入控件503处的第一画布检测到第五事件(例如手指点击事件)时,终端将第一画布设置为透明。在第一画布的透明属性生效后,终端显示如图9B中(2)所示的手写框910用于接收用户的书写操作。
需要注意的是,手写框与第二画布不同。手写框是操作前景窗口中的输入控件后,弹出的控件。换言之,终端显示手写框为前景窗口所在应用的业务执行逻辑。手写框属于前景窗口所在的应用,因此手写框的尺寸一般不会大于前景窗口的尺寸。手写框一般为不透明的(例如透明度为1或接近1)。可以理解的,当不同应用设置的手写框的尺寸和位置一般不同。而第二画布是操作第一画布后弹出的控件。换言之,终端显示第二画布为手写板应用的业务执行逻辑。第二画布的尺寸可以是任意的,不受前景窗口的尺寸限制,例如第二画布可以为全屏。且,第二画布为接近透明或半透明的。
S909、定时器定时结束后,终端恢复第一画布为接近透明或半透明。
在定时器定时结束前,如果用户操作前景窗口,终端将按照前景窗口所在应用的业务执行逻辑运行。当定时器定时结束后,终端恢复第一画布为接近透明或半透明。即,第一画布继续拦截用户在输入控件上的输入。当用户在输入控件的输入为手写板应用关注的事件(例如,手写笔down事件)后,可以显示第二画布。当用户在输入控件的输入为手写板应用不关注的事件(例如,手指触摸up事件或者鼠标up事件),则继续设置第一画布设置为透明属性,而后在输入控件的输入将直接透传给前景窗口所在的应用。
由此可见,在检测到在第一画布的输入事件(即用户在前景窗口的输入控件中开始书写的事件)后,进一步区分该输入事件的输入方式(如手写笔输入、手指触摸输入、鼠标输入),并针对不同的输入方式实现不同的手写体验,丰富了用户手写体验,满足不同的手写需求。
还需要说明的是,上述步骤S901-步骤S909提供的技术方案,是以终端先不区分用户的输入方式(手写笔输入、手指输入或鼠标输入),在前景窗口的输入控件统一设置第一画布,而后根据第一画布接收到输入事件确定是哪种输入方式,针对不同输入方式采用不同的处理方法。在另外一些实施例中,终端也可以在输入控件检测到用户的输入事件后,区分该输入事件是哪种输入方式。针对手写板应用关注的输入方式,例如手写笔输入,则终端可以直接设置第二画布,用于接收手写板的书写操作。针对手写板应用不关注的输入方式,则无需设置第一画布,直接执行前景窗口原生的输入逻辑。
以上实施例是从终端角度讲述本申请的技术方案,以下提供一种终端的内部结构图,并结合终端的内部结构对本申请的技术方案进行说明。
如图10所示,为本申请提供的另一种终端的结构示意图,该终端结构示意图中包含了手写板应用的结构。具体的,终端的用户模式中示出了设置应用、手写板应用以及前景窗口所在应用。各个应用中包含的模块将在下文介绍技术方案时详细说明。终端的内核模式中示出了内核和执行体,窗口和图形系统、以及设备驱动程序。其中内核和执行体包括后台进程服务、UIA的API、以及Windows的API。
下面结合图10所示的结构,继续以当手写笔落笔在输入控件后即开始书写。当手指或鼠标点击输入控件后,弹起手写框为例对本申请实施例提供的手写方法进行说明。
如图11所示,为终端检测到手写笔输入时的手写方法的流程示意图,该流程包括:
S1101、手写板应用启动后,检测前景窗口中的输入控件。
在一个示例中,终端的设置应用中可以设置功能开关,用于用户选择允许或禁止启动手写板应用。
在具体实现时,请参考图10,当用户通过设置应用的功能开关启动手写板应用。手写板应用启动后,手写板应用的输入控件识别引擎用于识别前景窗口中包含的输入控件。其中,前景窗口为用户正在操作的窗口,一般为前台应用的窗口。在一些示例中,输入控件识别引擎中的控件识别模块可以通过调用内核模式中的UIA的API获取前景窗口包含的控件的UIA信息,并根据控件的UIA信息识别出其中的输入控件,并获取输入控件的数量以及各个输入控件的位置等信息。具体的识别方法可以参考前文步骤S302中的相关内容,这里不再赘述。
在另一些示例中,输入控件识别引擎中的窗口句柄识别模块可以通过调用Windows的API识别前景窗口中的Windows标准控件的信息,并识别出其中的输入控件,并获取输入控件的数量以及各个输入控件的位置等信息。具体的识别方法可以参考前文步骤S302中相关内容,这里不再赘述。
在又一些示例中,手写板应用中还包括应用策略配置模块,用于接收系统设置的或用户设置的应用策略。或者,应用策略配置模块还可以从网络中获取应用策略。那么,输入控件识别引擎中的应用识别规则模块可以基于应用策略配置模块中配置的应用策略,组合使用控件识别方法和窗口句柄识别方法。例如,应用策略包括优先使用控件识别方法(即调用控件识别模块)的应用名单1,和/或,优先使用窗口句柄识别方法(即调用窗口句柄识别模块)的应用名单2。例如,应用名单1包含第三方的应用,或者根据统计数据确定的包含大量自定义控件的应用等。应用名单2包含系统应用,或者根据统计数据确定的包含大量Windows标准控件的应用等。可以理解的,当前景窗口属于应用名单1中的应用时,输入控件识别引擎优先调用控件识别模块识别前景窗口中的输入控件。当前景窗口属于应用名单2中的应用时,输入控件识别引擎优先调用窗口句柄识别模块识别前景窗口中的输入控件。
可选的,应用策略还可以包括同时使用控件识别方法(即调用控件识别模块)和窗口句柄识别方法(即调用窗口句柄识别模块)的应用名单3。本申请实施例对应用策略的设置不做具体限定。
S1102、手写板应用根据前景窗口中输入控件的位置,设置第一画布。
在一些示例中,手写板应用可以调用内核模式中的窗口和图形系统,在前景窗口中输入控件的上层绘制相应的第一画布。其中,第一画布的位置和输入控件的位置一致,第一画布的数量与前景窗口中的输入控件的数量一致。且第一画布可以设置为接近透明或半透明。可以理解的是,此时终端上实际显示有前景窗口以及手写板应用绘制的第一画布,而第一画布为接近透明或半透明,那么用户仍然可以看到前景窗口中输入控件以及输入控件内的内容,用户仍然可以继续操作前景窗口。
需要说明的是,在具体实现时,手写板应用可以在识别出前景窗口中的输入控件后,根据输入控件的数量以及位置等信息,绘制相应的第一画布,此时第一画布可以设置为接近透明或半透明。或者,手写板应用还可以在启动时就绘制一个或多个第一画布,此时第一画布设置为未激活状态。而后,在识别出前景窗口中的输入控件的数量和位置后,手写板应用激活相应数量的第一画布,即将第一画布设置为接近透明或半透明,并根据输入控件的位置更新相应第一画布的位置等。
S1103a、手写板应用监听前景窗口的变化事件。
示例性的,手写板应用中前景窗口监听模块可以向终端内核模式下的UIA订阅前景窗口的变化事件。其中,前景窗口的变化事件,包括用户切换当前正在操作的窗口(例如前景窗口从应用1的窗口切换为应用2的窗口),前景窗口界面发生切换(例如应用1界面1切换为界面2),前景窗口中控件的位置和/或大小等发生变化(例如前景窗口从小窗口模式切换到全屏模式)等。
S1103b、手写板应用根据前景窗口的变化事件,更新前景窗口中的输入控件的信息。
示例性的,手写板应用中前景窗口监听模块将前景窗口的变化事件发送给输入控件识别引擎,输入控件识别引擎重新调用UIA的API和/或Windows的API更新前景窗口中的输入控件的信息。
S1103c、手写板应用根据更新的前景窗口中的输入控件的信息,更新第一画布。
手写板应用更新第一画布的方法同上述步骤S1102,这里不再赘述。
可以理解的,上述步骤S1103b和步骤S1103c可选。
S1104、手写板应用检测到作用于第一画布的手写笔down事件。
本步骤在图中以步骤S1104a和步骤S1104b示出。
Windows操作系统的设备驱动程序在检测到作用于第一画布的输入事件后,通过窗口和图形系统将输入事件发送给手写板应用。手写板应用可以通过全局钩子从内核模式下的Win32的API(例如SetWindowsHookEx)获取输入事件的具体信息,可以根据其中特定标志位来区分该输入事件为手写笔的down事件、手指触摸的down事件或鼠标操作的down事件。
S1105、响应于检测到手写笔down事件,手写板应用在前景窗口上层设置第二画布。可选的,手写板应用还可以关闭第一画布,或者隐藏第一画布,或者将第一画布设置为透明。
其中,第二画布的尺寸大于第一画布的尺寸。在一个示例中,第二画布为全屏窗口。
在一些示例中,当检测到手写笔down事件后,手写板应用可以调用内核模式中的窗口和图形系统,绘制第二画布。
S1106、手写板应用接收作用于第二画布的书写操作,并呈现笔迹。
本步骤在图中以步骤S1106a和步骤S1106b示出。
可以理解的是,在步骤S1105中检测到手写笔down事件后,用户可以在不抬笔的情况直接书写。由于第二画布位于最上层,那么用户的书写操作是作用在第二画布上的。Windows操作系统的设备驱动程序在检测到作用于第二画布的书写操作后,通过窗口和图形系统将书写操作发送给手写板应用,手写板应用在第二画布上呈现手写笔移动的轨迹,即笔迹。由此实现,手写笔落笔后即开始书写的功能。当第二画布为全屏窗口时,还实现了全屏手写的功能,大大提升了手写体验。
S1107、当手写笔应用检测到作用于第二画布的手写笔的up事件后,且在预设时长1内未检测到作用于第二画布的手写笔的down事件时,手写板应用开始识别第二画布上的笔迹。可选的,手写板应用关闭第二画布。
本步骤在图中以步骤S1107a、步骤S1107b、以及步骤S1107c示出。
在一些示例中,Windows操作系统的设备驱动程序在检测到作用于第二画布的手写笔的up事件后,通过窗口和图形系统向手写板应用发送手写笔的up事件。当手写板应用接收到手写笔的up事件后,且在预设时长1内未检测到手写笔的down事件,第二画布将手写笔迹发送给手写板应用中的笔迹识别引擎,由笔迹识别引擎识别。
S1108、手写板应用向前景窗口发送笔迹识别结果,前景窗口中相应输入控件中显示笔迹识别结果。
示例性的,手写板在识别出笔迹后,可以通过UIA聚焦模块通知前景窗口修改相应的输入控件的属性为有键盘焦点。而后,前景窗口调用内核模式中的窗口和图形系统在相应的输入控件中显示笔迹识别结果。由此,实现在前景窗口中输入文字的功能。
图12示出了终端检测到手指输入或鼠标输入的输入方法的流程。在上述步骤S1103c之后,或者在上述步骤S1108之后,还可以包括下述步骤S1201至步骤S1207。
S1201、当检测到作用于第一画布的手指触摸down事件或者鼠标down事件,手写板应用设置第一画布为透明,并启动定时器。
本步骤在图中以步骤S1201a、步骤S1201b,以及步骤S1201c示出。
在一些示例中,Windows操作系统的设备驱动程序在检测到作用于第一画布的手指触摸down事件或者鼠标down事件后,通过窗口和图形系统向手写板应用发送手指触摸down事件或者鼠标down事件后。当手写板应用接收到手指触摸down事件或者鼠标down事件后,设置第一画布为透明。在一些示例中,手写板应用还可以启动定时器开始计时,定时时长为预设时长2。
需要说明的是,当第一画布被设置为透明后,操作系统(例如具体为窗口和图形系统)将不再向第一画布转发作用于第一画布的输入事件。也就是说,作用于第一画布的输入事件将传递给第一画布的下一层的应用。但,第一画布被设置为透明属性不是立即生效的,生效时间不确定。因此,在第一画布设置为透明属性生效前,当第一画布接收到手指触摸down事件或者鼠标down事件后,手写板应用均需向操作系统(例如具体为窗口和图形系统)发送模拟的手指触摸up事件或者鼠标up事件,即执行步骤S1202。可以理解的,在第一画布设置为透明属性生效前,操作系统仍然会将本次接收到的手指触摸up事件或者鼠标up事件发送给手写板应用的第一画布。同理,当第一画布接收到手指触摸up事件或者鼠标up事件后,手写板应用均需向操作系统(例如具体为窗口和图形系统)发送模拟的手指触摸down事件或者鼠标down事件,即执行步骤S1203b。
S1202、手写板应用向操作系统发送手指触摸up事件或者鼠标up事件。
S1203a、在第一画布的透明属性生效前,操作系统在接收到的手指触摸up事件或者鼠标up事件后,向第一画布发送手指触摸up事件或者鼠标up事件。
S1203b、第一画布在接收到操作系统发送的手指触摸up事件或者鼠标up事件后,向操作系统发送模拟的手指触摸down事件或者鼠标down事件。
后续,在第一画布设置的透明属性生效后,当检测到作用于第一画布位置(也即前景窗口中输入控件位置)的输入事件后,操作系统将直接将输入事件转发给前景窗口,而不再转发给手写板应用。即,执行下述步骤S1204以及后续步骤。
S1204、在第一画布的透明属性生效后,操作系统接收到第一画布发送的手指触摸down事件或者鼠标down事件后,向前景窗口所在应用发送手指触摸down事件或者鼠标down事件。
由此可见,当第一画布的透明属性生效后,用户的输入事件将传递给第一画布的下一层的应用,即前景窗口所在应用。
S1205、操作系统检测到手指触摸up事件或者鼠标up事件后,向前景窗口所在应用发送手指触摸up事件或者鼠标up事件。
本步骤在图中以步骤S1205a和步骤S1205b示出。
可以理解的是,上述步骤S1204和步骤S1205,也就是说,检测到用户使用手指或鼠标点击前景窗口的输入控件,且抬手的操作。
S1206、前景窗口弹出手写框,手写框用于接收书写操作。
响应于检测到用户使用手指或鼠标点击前景窗口的输入控件的操作,前景窗口所在应用弹出手写框,手写框用于接收用户后续的书写操作。后续,当检测到作用于第一画布的操作后,前景窗口按照本身的业务执行逻辑运行。
S1207、当定时器计时结束后,手写板应用自动将第一画布恢复为接近透明或半透明。
也就是说,在定时器定时的预设时长2到达时,手写板应用自动恢复第一画布的非透明属性,即接近透明或半透明的属性,即继续拦截用户在输入控件上的输入。当用户在输入控件的输入为手写板应用关注的事件(手写笔down事件)后,可以显示第二画布。当用户在输入控件的输入为手写板应用不关注的事件(手指触摸up事件或者鼠标up事件),则继续设置第一画布设置为透明属性,而后在输入控件的输入将直接透传给前景窗口所在的应用。
本申请实施例还提供一种装置,该装置包含在终端中,该装置具有实现上述实施例中任一方法中终端行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括至少一个与上述功能相对应的模块或单元。例如,接收模块或单元、显示模块或单元、处理模块或单元等。
本申请实施例还提供一种计算机存储介质,包括计算机指令,当计算机指令在终端上运行时,使得终端执行如上述实施例中任一方法。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述实施例中任一方法。
可以理解的是,上述终端等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
本申请实施例可以根据上述方法示例对上述终端等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种手写输入方法,其特征在于,所述方法包括:
检测应用窗口中的输入控件;
在所述应用窗口中所述输入控件的对应位置上设置第一画布,所述第一画布的透明度大于或等于第一阈值;
响应于作用在所述第一画布上的第一事件,在所述应用窗口上层设置第二画布;其中,所述第二画布用于接收用户的书写操作,并呈现书写笔迹;所述第二画布的尺寸大于所述第一画布的尺寸,且所述第二画布的透明度大于或等于所述第一阈值;
根据所述第二画布上所述书写笔迹在所述应用窗口的所述输入控件中显示所述第二画布上书写笔迹的识别结果。
2.根据权利要求1所述的方法,其特征在于,所述第一画布和所述第二画布为不同的窗口,或者,所述第一画布和所述第二画布为同一个窗口。
3.根据权利要求1或2所述的方法,其特征在于,所述第二画布为全屏窗口,或者,所述第二画布的尺寸与所述应用窗口的尺寸相同。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述检测应用窗口中的输入控件,包括:
调用用户界面自动化UIA接口检测所述应用窗口的所述输入控件。
5.根据权利要求4所述的方法,其特征在于,所述调用用户界面自动化UIA接口检测所述应用窗口的所述输入控件,包括:
调用用户界面自动化UIA接口获取所述应用窗口中各个控件的信息;
当根据所述各个控件的信息确定应用窗口中第一控件的类型为预设类型,且所述第一控件的属性为所述预设类型对应的预设属性时,确定所述第一控件为所述应用窗口的所述输入控件;
其中,所述预设类型包括编辑控制类型、下拉列表类型、以及文档控制类型中一项或多项;所述预设属性包括可被键盘聚焦、非只读、有键盘焦点中一项或多项。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
在所述检测所述应用窗口中的所述输入控件的过程中,还获取所述应用窗口中各个控件的类型和/或风格说明,并根据所述各个控件的类型和/或风格说明确定所述应用窗口中的所述输入控件。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
在检测到所述作用于所述第一画布的第一事件时,关闭所述第一画布。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述在所述应用窗口中所述输入控件的对应位置上设置第一画布之后,所述方法还包括:
当监测到所述应用窗口的变化事件后,重新检测所述应用窗口变化后的所述输入控件,并更新在所述应用窗口上层设置的所述第一画布;
其中,所述应用窗口的变化事件包括:用户切换应用窗口的事件,所述应用窗口中界面跳转事件,所述应用窗口中控件的位置和/或大小发生变化的事件中一项或多项。
9.根据权利要求1-8任一项所述的方法,其特征在于,
所述第一事件为手写笔down事件,手指触摸的down事件,鼠标操作的down事件的任一项。
10.根据权利要求1-9任一项所述的方法,其特征在于,在所述根据所述第二画布上所述书写笔迹在所述应用窗口的所述输入控件中显示所述第二画布上书写笔迹的识别结果之前,所述方法还包括:
当检测到作用于所述第二画布的第二事件后,识别所述第二画布上的所述书写笔迹。
11.根据权利要求10所述的方法,其特征在于,
当所述第一事件为手写笔down事件时,所述第二事件为手写笔的up事件;
当所述第一事件为手指触摸的down事件时,所述第二事件为手指触摸的up事件;
当所述第一事件为鼠标操作的down事件时,所述第二事件为鼠标操作的up事件。
12.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
当检测到作用于所述第一画布的第三事件时,修改所述第一画布的透明度为小于所述第一阈值;其中,所述第三事件与所述第一事件不同;
显示手写框,所述手写框用于接收用户的书写操作,并呈现书写笔迹。
13.根据权利要求12所述的方法,其特征在于,所述显示手写框,包括:
所述应用窗口所属的应用绘制所述手写框。
14.根据权利要求12或13所述的方法,其特征在于,
所述第一事件为手写笔down事件;所述第三事件为手指触摸的down事件或鼠标操作的down事件。
15.根据权利要求1-14任一项所述的方法,其特征在于,
所述应用窗口为前景窗口。
16.一种终端,其特征在于,包括:处理器、存储器和触摸屏,所述存储器、所述触摸屏与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以使得所述终端执行如权利要求1-15中任一项所述的手写输入方法。
17.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端上运行时,使得所述终端执行如权利要求1-15中任一项所述的手写输入方法。
18.一种芯片系统,其特征在于,包括一个或多个处理器,当所述一个或多个处理器执行指令时,所述一个或多个处理器执行如权利要求1-15中任一项所述的手写输入方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210731487.5A CN117311586A (zh) | 2022-06-24 | 2022-06-24 | 手写输入方法及终端 |
PCT/CN2023/100299 WO2023246604A1 (zh) | 2022-06-24 | 2023-06-14 | 手写输入方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210731487.5A CN117311586A (zh) | 2022-06-24 | 2022-06-24 | 手写输入方法及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117311586A true CN117311586A (zh) | 2023-12-29 |
Family
ID=89261008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210731487.5A Pending CN117311586A (zh) | 2022-06-24 | 2022-06-24 | 手写输入方法及终端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117311586A (zh) |
WO (1) | WO2023246604A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005096217A1 (en) * | 2004-04-02 | 2005-10-13 | Nokia Corporation | Apparatus and method for handwriting recognition |
CN103547983B (zh) * | 2011-05-20 | 2016-04-06 | 微软技术许可有限责任公司 | 用于手写输入的用户界面 |
CN102778999B (zh) * | 2012-04-16 | 2014-12-10 | 中兴通讯股份有限公司 | 移动终端及其全屏手写的处理方法 |
CN103226445A (zh) * | 2013-05-10 | 2013-07-31 | 广东国笔科技股份有限公司 | 一种手写输入的方法、系统和终端 |
CN113625932B (zh) * | 2021-08-04 | 2024-03-22 | 北京字节跳动网络技术有限公司 | 一种全屏手写输入的方法及装置 |
-
2022
- 2022-06-24 CN CN202210731487.5A patent/CN117311586A/zh active Pending
-
2023
- 2023-06-14 WO PCT/CN2023/100299 patent/WO2023246604A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023246604A1 (zh) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11722449B2 (en) | Notification message preview method and electronic device | |
CN114816209B (zh) | 一种移动终端的全屏显示方法及设备 | |
WO2021129326A1 (zh) | 一种屏幕显示方法及电子设备 | |
US20240179237A1 (en) | Screenshot Generating Method, Control Method, and Electronic Device | |
EP4012544B1 (en) | Split-screen processing method and terminal device | |
CN116723266A (zh) | 一种悬浮窗口的管理方法及相关装置 | |
CN111913750B (zh) | 一种应用程序管理方法、装置及设备 | |
WO2021063237A1 (zh) | 电子设备的控制方法及电子设备 | |
CN116360725B (zh) | 显示交互系统、显示方法及设备 | |
CN115981582B (zh) | 显示方法及电子设备 | |
CN112740152B (zh) | 手写笔检测方法、系统及相关装置 | |
US12001673B2 (en) | Split-screen display method and electronic device | |
CN113254120A (zh) | 数据处理方法和相关装置 | |
CN113961115B (zh) | 对象编辑方法、电子设备、介质以及程序产品 | |
CN113641271A (zh) | 应用窗口的管理方法、终端设备及计算机可读存储介质 | |
US20250060865A1 (en) | Screen capture method, electronic device, medium, and program product | |
CN116069226A (zh) | 一种窗口内容拖拽的方法及电子设备 | |
CN116991274B (zh) | 一种上滑动效异常处理方法及电子设备 | |
CN115543145A (zh) | 一种文件夹管理方法及装置 | |
CN117931354A (zh) | 显示方法及相关装置 | |
CN117311586A (zh) | 手写输入方法及终端 | |
CN116028966A (zh) | 一种应用的显示方法、电子设备和存储介质 | |
CN117632329B (zh) | 显示方法、存储介质及电子设备 | |
CN114690924B (zh) | 防误触锁定方法、终端设备及计算机可读存储介质 | |
WO2024109573A1 (zh) | 悬浮窗显示的方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |