实施例检测手势的初始定位,诸如一个或多个手指相对于触摸感应界面的初始定位。实施例计算手势调整的一个或多个大小以及将导致的对应的一个或多个数据调整。实施例显示所计算的手势调整的大小和预计的相对于手势的初始定位的对应的数据调整。
例如,如果用户打算做出拉伸(spread)手势来缩放图像,则用户将拇指和食指放在触摸屏上。实施例感测拇指和食指的初始定位,包括拇指和食指之间的初始拉伸距离。实施例例如计算大于初始拉伸距离的三个不同的拉伸位置,并将不同的拉伸距离显示为围绕初始位置的同心圆。实施例还计算对应于所述三个拉伸位置的放大比例。实施例在显示器上显示相对于其各个拉伸位置的放大比例。实施例对于缩小操作也类似地计算小于初始拉伸距离的不同的拉伸位置。
以此方式,实施例能够使用户知道拉伸多远来达到所需级别的放大或缩小数据调整。例如,用户可以将拇指和食指拉伸达到某同心圆,以实现对应于该同心圆的缩小或放大级别。可替换的,用户可以将食指和拇指拉伸到两个同心圆之间的距离,从而实现成比例的中间缩放级别。
仅作为示例关于特定手势、大小、界面、设备、数据处理系统、环境、组件和应用描述了示例性实施例。这些特征的任何特定实现形式都非旨在限制本发明。可以在示例性实施例的范围内选择这些或其他类似特征的任何合适的实现形式。
而且,可以针对任何类型的数据、数据源、或在数据网络上对数据源的访问来实现示例性实施例。在本发明的范围内,任何类型的数据存储设备可以在数据处理系统本地或在数据网络上向本发明的实施例提供数据。
仅将特定代码、设计、架构、协议、布局、示意图和工具用作示例来描述示例性实施例,而不限于这些示例性实施例。而且,为了说明书清楚起见,仅将特定软件、工具和数据处理环境用作示例在一些实例中描述示例性实施例。可以结合其他类似的或相似的专用结构、系统、应用或架构使用示例性实施例。可以以硬件、软件或者其结合来实现示例性实施例。
本公开中的示例仅用于清楚地进行描述,而不用于限制示例性实施例。根据本公开将可以想到其它的数据、操作、动作、任务、活动、操纵,并且其可以被认为是在示例性实施例的范围之内。
这里列出的任何优点仅仅是示例,而非旨在限制示例性实施例。可以通过特定的示例性实施例实现另外的或不同的优点。而且,特定的示例性实施例可以具有一些、全部上述优点或不具有上述优点。
参考附图,特别是参考图1和2,所述图是其中可以实现示例性实施例的数据处理环境的示例示意图。图1和2仅是示例,而非旨在对其中可以实现不同实施例的环境主张或暗示任何限制。特定的实施可以基于下面的描述对所述的环境做出许多修改。
图1示出了其中可以实现示例性实施例的数据处理系统的网络的框图。数据处理环境100是其中可以实现示例性实施例的计算机网络。数据处理环境100包括网络102。网络102是用于提供在数据处理环境100中连接在一起的各种设备和计算机之间的通信链路的媒介。网络102可以包括连接,诸如有线、无线通信链路,或光纤电缆。服务器104和服务器106和存储单元108一起耦合到网络102上。软件应用可以在数据处理环境100中的任何计算机上执行。
另外,客户端110、112和114耦合到网络102。诸如服务器104或106、客户端110、112或114的数据处理系统可以包括数据,并且软件应用或软件工具可以在该数据处理系统上执行。
仅作为示例,而不意味着对该构架做任何限制,图1示出了环境中可用的某些组件。在一个示例性配置中,设备132是为手势输入提供触摸感应界面134的数据处理设备,诸如智能手机或平板电脑平台。应用133实现在设备132中操作或与设备132共同操作的实施例。一般的,任何合适的设备、数据处理系统或其组件,可以使用触摸感应界面,从而也可以不受限制地实现或使用实施例。例如,在另一个示例性配置中,数据处理系统114包括实现实施例的应用115。
服务器104和106、存储单元108和客户端110、112和114可以使用有线连接、无线通信协议或其他合适的数据连接耦合到网络102。客户端110、112和114例如可以为个人计算机或网络计算机。
在示出的示例中,服务器104可以提供诸如引导文件、操作系统映像和应用的数据到客户端110、112和114。在该示例中,客户端110、112和114可以是服务器104的客户端。客户端110、112和114或其组合可以包括其自己的数据、引导文件、操作系统映像、和应用。数据处理环境100可以包括另外的服务器、客户端和没有显示的其他设备。
在示出的示例中,数据处理环境100可以为互联网。网络102可以表示使用传输控制协议/互联网协议(TCP/IP)和其他协议来彼此通信的网络和网关的集合。在互联网的核心是主要的节点或主机(包括对数据和消息进行路由的数千个商业、政府、教育和其他计算机系统)之间的数据通信链路的中枢。当然,数据处理环境100也可以被实现为许多不同类型的网络,例如内联网、局域网(LAN)、或广域网(WAN)。图1是意在作为一个示例,而不是对不同示例性实施例的结构限制。
作为用途之一,数据处理环境100可以用来实现客户端-服务器环境,在该客户端-服务器环境中可以实现示例性实施例。客户端-服务器环境使软件应用和数据能够跨网络分布,从而应用通过使用客户端数据处理系统与服务器数据处理系统之间的交互来运行。数据处理环境100还可以采用面向服务的架构,其中分布在网络上的互操作的软件组件可以被封装在一起作为相干业务应用。
参考图2,该图示出了其中可以实现示例性实施例的数据处理系统的框图。数据处理系统200是计算机的一个示例,诸如图1中的服务器104或客户端110,或者其中可以为示例性实施例设置实现过程的计算机可用程序代码或指令的其他类型的设备。
数据处理系统200还可以表示诸如图1中的设备132的设备,在设备132中可以为示例性实施例设置实现示例性实施例的过程的计算机可用程序代码或指令。仅作为一个示例将数据处理系统200描述为计算机,但并不限于计算机。以图1中设备132形式的实现方式在不脱离这里所述的数据处理系统200的操作和功能的一般描述的情况下,可以对数据处理系统200做出修改,甚至可以从中去掉某些示出的组件。
在示出的示例中,数据处理系统200采用包括北桥和存储器控制器集线器(NB/MCH)202以及南桥和输入/输出(I/O)控制器集线器(SB/ICH)204的集线器架构。处理单元206、主存储器208和图形处理器210耦合到北桥和存储器控制器集线器(NB/MCH)202。处理单元206可以包括一个或多个处理器,并且可以使用一个或多个异构处理器系统来实现处理单元206。处理单元206可以为多核处理器。在某些实施方式中,图形处理器210可以通过加速图形端口(AGP)耦合到NB/MCH202。
在示出的示例中,局域网(LAN)适配器212耦合到南桥和I/O控制器集线器(SB/ICH)204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、通用串行总线(USB)和其他端口232、以及PCI/PCIe设备234通过总线238耦合到南桥和I/O控制器集线器204。硬盘驱动器(HDD)或固态驱动器(SSD)226和CD-ROM 230通过总线240耦合到南桥和I/O控制器集线器204。PCI/PCIe设备234可以包括例如以太网适配器、插入卡、和用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不用。ROM 224例如可以为快闪二进制输入/输出系统(BIOS)。硬盘驱动器226和CD-ROM 230例如可以使用集成驱动电子设备(IDE)、串行高级技术附件(SATA)接口、或诸如外部SATA(eSATA)和微型SATA(mSATA)的变化方式。超级I/O(SIO)设备236可以通过总线238耦合到南桥和I/O控制器集线器(SB/ICH)204。
诸如主存储器208、ROM 224或快闪存储器(未示出)的存储器是计算机可用存储设备的一些示例。硬盘驱动器或固态驱动器226、CD-ROM 230和其他类似的可用设备是包括计算机可用存储介质的计算机可用存储设备的一些示例。
操作系统运行于处理单元206上。在图2中,操作系统协调和提供对数据处理系统200内的各种组件的控制。操作系统可以为商业可获得的操作系统,诸如(AIX是国际商用机器公司在美国和其他国家的商标),的(Microsoft和Windows是微软公司在美国和其他国家的商标),或(Linux是莱纳斯·托沃兹(Linus Torvalds)在美国和其他国家)的商标。面向对象的编程系统,诸如JavaTM编程系统,可以与操作系统一起运行,并根据数据处理系统200上运行的JavaTM程序或应用提供对操作系统的调用(Java和所有基于Java的商标和徽标是甲骨文公司和/或其子公司的商标或注册商标)。
操作系统的指令、面向对象的编程系统、和应用或程序(诸如图1中的应用105、图1中的NLP引擎107)位于诸如硬盘驱动器226的存储设备上,并且可以被加载到一个或多个存储器中的至少一个存储器中,诸如主存储器208,以用于被处理单元206执行。可以使用计算机实现的指令由处理单元206执行示例性实施例的过程,所述计算机实现的指令可以位于存储器(诸如主存储器208、只读存储器224)中或一个或多个外围设备中。
图1-2中的硬件可以基于实施方式改变。其他内部硬件或外围设备,诸如快闪存储器、等价的非易失性存储器、或光盘驱动器等,可以附加地使用、或替换图1-2中所示的硬件来使用。另外,示例性实施例的过程可以应用于多处理器数据处理系统。
在一些示例性示例中,数据处理系统200可以为个人数字助理(PDA),个人数字助理通常被配置有快闪存储器以用于提供存储操作系统文件和/或用户生成的数据的非易失性存储器。总线系统可以包括一个或多个总线,诸如系统总线、I/O总线、和PCI总线。当然,可以使用提供附接到通信结构或构架的不同组件或设备之间的数据传输的任何类型的通信结构或架构来实施总线系统。
通信单元可以包括一个或多个用于传输和接收数据的设备,诸如调制解调器或网络适配器。存储器例如可以为主存储器208或缓存,诸如北桥和存储器控制器集线器202中的高速缓存器。处理单元可以包括一个或多个处理器或CPU。
图1-2中示出的示例和上述示例非旨在暗示对架构做限制。例如,数据处理系统200除了采用PDA形式之外,还可以为平板电脑、手提电脑、或电话设备。
参考图3,该图示出了可以使用示例性实施例改善的示例手势的框图。图302A、302B和302C每个为可以使用手势调整或操作的数据的示例。可以使用与设备132有关的触摸感应界面134或用图1中的数据处理系统114实施的类似界面来显示图像302A-302C。
手势304A和304B为可以应用到要调整的任何数据(诸如图像302A、302B、和302C中的任意一者)的示例的捏挤(pinch)和拉伸(spread)手势。图3示出了应用到图像302A和302C的手势304A,和应用到图像302B的手势304B。可以看到,用于显示图像302A和302C的界面的大小不同,应用到图像302A的手势304A和应用到图像304C的手势304A相比大小不同。
如示例性实施例中所意识到和图3中所示的,针对基于手势的输入的现有方案不向用户提供关于用户手势的大小与对应的数据调整的大小之间的对应关系的在先引导。例如,应用于图像302A的手势304A显示了最终结果,其中图像的数据显示了缩小的图像。应用于图像302B的手势304B显示了最终结果,其中图像的数据显示了放大的图像。然而,在两种情况下,以及就此而言在图像302C的情况中,针对基于手势的输入的现有方案对于每种情况下的手势实现的最终结果都没有提供任何在先引导。
现有方案仅对用户呈现出最终结果,而让用户来猜测系统会如何响应于手势的大小和如何估计发生了多大的数据调整。不利地,使用针对基于手势的输入的现有可用方案,用户通常必须试着做出很多次手势,尝试不同大小的手势,以实现用户预期的最终结果。
参考图4,该图示出了根据示例性实施例引导手势操作的框图。界面402为触摸感应界面,诸如图1中的界面134或与图1中的客户端114一起使用的类似界面。手势404显示为两指拉伸手势,且为图3中手势304B的一个示例。手势404仅用作示例,而不暗示对其示例性实施例做出限制。
可以使用界面402和手势404呈现和调整任何类型的数据。作为示例,可以使用界面402呈现图像302A、302B和302C。
执行实施例的应用,诸如图1中的应用133或115,测量包括手势404的食指与拇指之间的拉伸距离的初始定位406。例如,可以将拇指的触摸点视为参考点,参考点与食指的触摸点之间的距离可以为手势404的拉伸距离。
应用呈现带滑动件的标尺408。用户在标尺408上操纵滑动件,以调整手势的大小与界面402上呈现的数据调整的大小之间的对应程度。
在一个示例实施例中,标尺408提供可选范围的设置。在该示出的实施例的示例中,范围界限例如标记为“快”和“慢”。将滑动件设置在“快”端和“慢”端之间能够产生手势404的大小与数据调整的大小之间的阈值比例。滑动件向着“快”端设置产生大于阈值比例的比例对手势404有效,而滑动件向着标尺408的“慢”端设置产生小于阈值比例的比例对手势404有效。
在一个实施例中,应用确定对应于当前级别的数据显示(例如,默认为百分之一百的缩放级别)的手势404的大小410,该手势404的大小为初始定位406的拉伸距离。在另一个实施例中,初始定位406的拉伸距离对应于呈现的数据的任何可能的缩放级别或初始状态。例如,如果在做出任何手势之前数据最初被呈现为放大到百分之二百(未示出),则大小410将对应于初始呈现的百分之二百的放大级别。
在测量初始定位406的大小410和标尺408上选择的位置时,应用计算手势404的一组不同的大小。在图4的示例性示出中,应用计算大小412、414和416。当手势被调整为大小412时,基础数据被调整为百分之一百五的放大级别。类似的,在手势大小414时,数据被调整为百分之二百的放大,而在手势大小416时,数据被调整为百分之二百五的放大。
在一个实施例中,在界面402上作为引导显示手势调整的大小,例如大小412、414和416。在一个示例中,如图所示,引导采用同心圆的形式。引导可以为任何静态覆盖在基础数据上或者以其他合适的方式显示的可见的、可感触的、或者甚至是可听的引导标记。
在一个实施例(未示出)中,可以提供另外的帮助,从而用户可以避免跨过到各个同心圆的距离或者其等价方式。例如,实施例可以以不同的颜色呈现每个同心圆。实施例还可呈现一系列的颜色标签,每个颜色标签对应于一个彩色的同心圆。颜色标签呈现为靠近于手势的初始位置,诸如如图所示在初始定位406的拇指与食指位置之间。根据用户希望把手指跨到哪个同心圆,用户可以改为点击或选择对应的颜色标签,从而和调整达到所需的同心圆相比对手势做出更小的调整。
参考图5,该图示出了根据示例性实施例引导手势操作的另一个示例的框图。界面502和图4的界面402类似。手势504显示为两指拉伸手势,是图4的手势404的另一个示例。手势504仅用作示例,而不暗示对其示例性实施例做出限制。
可以使用界面502和手势504呈现和调整任何类型的数据。作为示例,可以使用界面502呈现图像302A、302B和302C。
执行实施例的应用,诸如图1的应用133或115,测量初始定位506,包括手势504的食指和拇指之间的拉伸距离。和图4中的标尺408类似,应用呈现了带滑动件的标尺508。
图4的描述显示了与在大小412、414和416处以百分之五十的步长的示例数据调整相对应的标尺408的“快”端处的滑动件。在图5中,滑动件移动到标尺508的“慢”端。从而与图4中的对应程度相比,应用减小了手势的大小与界面502上呈现的数据调整的大小之间的对应程度。
在一个实施例中,应用确定手势504的大小510对应于数据显示的当前级别,例如默认为百分之一百缩放级别,所述手势504的大小510是初始定位506的拉伸距离。在之前所述的另一个实施例中,初始定位506的拉伸距离对应于呈现的数据的任何可能的缩放级别或初始状态。
在测量初始定位506的大小510和标尺508上选择的位置时,应用计算手势504的一组不同的大小。在图5的示例性示出中,应用计算大小512、514和516。当手势从大小510调整为大小512时,基础数据被调整为百分之一百一十的放大级别,小于图4中的百分之一百五十的大小412。类似的,在手势大小514时,数据被调整为百分之一百二的放大,而在手势大小516时,数据被调整为百分之一百三的放大。
在一个实施例中,在界面502上作为引导显示手势调整的大小,例如大小510、512、514和516。在示例性实施例的范围内,引导可以采用任何合适的形式,包括但不限于虚线可见同心圆,如图所示。
示出的拉伸类型的手势、对应于这些手势的操作的放大特性、手势的各种大小、和基础数据的对应的各种缩放级别,全都是示例,但非旨在限制示例性实施例。本领域的技术人员根据本公开将能够想到许多其他手势、数据调整、以及手势和数据调整的大小,并且这些被认为在示例性实施例的范围内。仅作为做出比例调节选择的示例方式显示了滑动件和标尺。为了示例性实施例的范围内的类似目的,可以使用做出比例调节选择的任何合适的方法,例如通过使用旋转盘等。
参考图6,该图示出了根据示例性实施例可以用于引导手势操作的一些引导的示例。界面600是图5中的界面的示例。
响应于手势604在界面600上呈现出引导602。仅作为示例,手势604是两指旋转手势,诸如用于旋转照片的旋转手势。
执行实施例的应用,诸如图1中的应用115或133,检测手势604为旋转手势。应用还检测用户在标尺606上做出的选择。应用利用各个角度的径向标记呈现引导602,显示了手势大小的多少调整(例如,手势604的多少旋转)与所示角度的基础数据的旋转调整相对应。
界面610是图5的界面的另一个示例。响应于手势614在界面610上呈现了引导612。仅作为示例,手势614是两指伸缩手势,诸如仅沿着一个轴伸缩照片。
执行实施例的应用,诸如图1中的应用115或133,检测手势614为伸缩手势。应用还检测用户在标尺616上做出的选择。应用将引导612呈现为同轴矩形线,该同轴矩形线的侧边平行于X轴和Y轴。以各种距离平行于轴的引导线指示手势614沿这些轴的各种大小改变,并显示对基础数据的相应伸缩调整。
参考图7,该图示出了根据示例性实施例用于引导手势操作的示例过程的流程图。可以在图1的应用115或133中执行过程700。
应用通过检测手势的初始位置或定位(框702)来启动过程700。应用确定基础数据的初始呈现级别(框704)。例如,应用确定数据是否被视为在默认呈现级别,诸如默认缩放级别,默认倾斜或旋转角、或可能具有其他类型数据的其他默认呈现级别。
应用从比例调节选择器确定或接收比例调节级别,以用于呈现手势大小调整的引导(框706)。应用计算手势调整的一组大小和对应的数据调整(框708)。应用将手势调整的一组大小和对应的数据调整作为引导呈现,以用于做出手势调整(框710)。应用之后结束程序700。
图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。在这方面,流程图或框图中的每个块可以表示包括用于实现特定逻辑功能的一个或多个可执行指令的模块、程序段或部分代码。还应该注意,在一些可替换的实施方式中,框中标注的功能可以与图中标注的顺序不同的顺序发生。例如,根据所涉及的功能,连续显示的两个框实际上可以基本同时执行,或者有时可以以相反的顺序执行。还应注意,框图和/或流程图示中的每个框,以及框图和/或流程图示中框的组合,可以通过执行特定功能或动作的专用的基于硬件的系统或者专用硬件和计算机指令的结合来实现。
从而,在示例性实施例中提供用于引导手势操作的计算机执行的方法、系统和计算机程序产品。实施例允许用户在对手势做出调整之前知道对手势做出多少调整来实现用户试图通过手势来操作的、对基础数据的所需的对应调整。实施例还能通过与手势的初始定位相关的引导标志使用户获知以上信息。另一个实施例允许用户对手势的调整与数据的对应调整之间的对应程度进行调整。
本领域的技术人员将会理解,本发明的方面可以具体表现为系统、方法或计算机程序产品。因此,本发明的方面可以采用完全是硬件实施方式、完全是软件实施方式(包括固件、驻留软件、微代码等)的形式、或通常都可以在此被称为“电路”、“模块”或“系统”的结合软件和硬件方面的实施方式的形式。而且,本发明的方面可以采用在一个或多个计算机可读存储设备或计算机可读介质中包括的计算机程序产品的形式,在所述一个或多个计算机可读存储设备或计算机可读介质上具有计算机可读程序代码。
可以使用一个或多个计算机可读存储设备或计算机可读介质的任何结合。计算机可读介质可以为计算机可读存储介质。计算机可读存储设备可以为,例如但不限于电、磁、光、电磁或半导体系统、装置或设备,或其任意合适的结合。计算机可读存储设备的更具体的示例(非详尽清单)可以包括以下:便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或者其任意合适的结合。在该文档的上下文中,计算机可读存储设备可以为可存储被指令执行系统、装置或设备使用或与其一起使用的程序的任何有形设备或介质。术语“计算机可读存储设备”或者其变换方式不包括信号传播介质,诸如铜线电缆、光纤或无线传输介质。
可以使用任何适合的介质来传输计算机可读存储设备或计算机可读介质上包括的程序代码,所述适合的介质包括但不限于无线、有线、光纤电缆、RF等,或者其任何合适的结合。
可以以一个或多个编程语言的任意结合编写用于执行本发明的方面的操作的计算机程序代码,所述编程语言包括面向对象编程语言,诸如Java、Smalltalk、C++等,还包括传统的过程式编程语言,诸如“C”编程语言或类似的编程语言。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机和部分在远程计算机上、或完全在远程计算机或服务器上执行。在后者的情况下,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机上,或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。
在此参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图示和/或框图描述本发明的方面。可以理解,可以通过计算机程序指令实施流程图示和/或框图的每个框和流程图示和/或框图中框的结合。可以将这些计算机程序指令提供到一个或多个通用计算机、专用计算机或其他用于生成机器的可编程数据处理装置的一个或多个处理器,从而使得通过计算机或其他可编程数据处理装置的一个或多个处理器执行的指令创建用于执行流程图和/或框图的一个或多个框中规定的功能/动作的部件。
所述计算机程序指令还可以存储在可以引导一个或多个计算机、一个或多个其他可编程数据处理装置、或一个或多个其他设备从而以特定方式起作用的一个或多个计算机可读存储设备或计算机可读介质中,从而使得存储在一个或多个计算机可读存储设备或计算机可读介质中的指令生成包括执行流程图和/或框图中一个或多个框中规定的功能/动作的指令的产品。
计算机程序指令还可以加载到一个或多个计算机、一个或多个其他可编程数据处理装置、或一个或多个其他设备中,以使得在一个或多个计算机、一个或多个其他可编程数据处理装置、或一个或多个其他设备上执行一系列操作步骤,从而生成计算机执行的过程,使得在一个或多个计算机、一个或多个其他可编程数据处理装置、或一个或多个其他设备上执行的指令提供用于执行流程图和/或框图中一个或多个框中规定的功能/动作的过程。
在此使用的术语仅仅是用于描述特定实施例的目的,而非旨在限制本发明。这里所用的单数形式的“一个”、“一”和“所述”意在还包括复数形式,除非上下文中另有明确说明。还应该理解,当在本说明书中使用术语“包括”和/或“包含”时,表示存在所述的特征、整数、步骤、操作、元件和/或组件,但不排除存在或另外具有一个或多个其他特征、整数、步骤、操作、元件、组件、和/或其组合。
所附权利要求中的对应的结构、材料、动作、和所有装置或步骤加功能元件的等价方式意在包括任何用于执行功能的结构、材料或动作以及明确要求的其他声明的元件。为了示出和描述的目的呈现了对本发明的描述,但并非旨在是穷举的或将本发明限于所公开的形式。在不脱离发明的范围和实质的情况下,许多修改和变化对于本领域的技术人员来说是显而易见的。选择和描述实施例以最好的解释本发明的原理和实际应用,以及使得本领域的其他技术人员理解本发明的通过适合想到的特定用途的各种修改做出的各种实施例。