高性能触摸拖放的制作方法_2

文档序号:9713525阅读:来源:国知局
10的量与由手写笔116接触的显示设备110的量来执行区分。
[0035]因此,手势模块104可以通过手写笔和触摸输入之间的分工的识别和利用以及不同类型的触摸输入来支持各种不同的手势技术。
[0036]web平台106是结合web的内容(例如,公共内容)工作的平台。Web平台106可以包括和利用许多不同类型的技术诸如(通过示例而非限制)URL、HTTP、REST、HTML、CSS、JavaScript、DOM、等等。Web平台106也能够用各种数据格式(诸如,XML、JS0N等等)来工作。Web平台106可以包括各种web浏览器、web应用程序(即“web app”)等。web平台106在被执行时允许计算设备从Web服务器取得web内容,诸如网页形式的电子文档(或其他形式的电子文档,诸如文档文件、XML文件、PDF文件、XLS文件等)并将它们显示在显示设备110上。应该指出的是,计算设备102可以是能够显示Web页面/文档并且连接到互联网的任何计算设备。
[0037]图2图示示出手势模块104的示例系统,该手势模块104被实施在其中多个设备通过中央计算设备互连的环境中。中央计算设备可以对多个设备是本地的,或者可以与多个设备远程地定位。在一个实施例中,中央计算设备是“云”服务器群,其包括通过网络或互联网或其他手段连接到多个设备的一个或多个服务器计算机。
[0038]在一个实施例中,该互连体系结构使能跨多个设备递送的功能,以向多个设备的用户提供共同和无缝的体验。多个设备中的每一个可能有不同的物理要求和能力,并且中央计算设备使用平台,该平台用于使能针对设备定制并且也对所有设备共同的体验到设备的递送。在一个实施例中,创建目标设备的“类”,并且针对通用类的设备定制体验。设备的类可以通过设备的物理特征或使用或其它共同特性来定义。例如,如先前所描述的那样,计算设备102可能以各种不同的方式诸如针对手机202、计算机204、和电视206用途来配置。这些配置中的每一个都有大致地对应的屏幕大小,并且因此,计算设备102可以配置为该示例系统200中的这些设备类中的一个。例如,计算设备102可以假定设备的移动202类,其包括移动电话、音乐播放器、游戏设备、等等。计算设备102也可以假定设备的计算机204类,其包括个人计算机、笔记本计算机、上网本、平板电脑、等等。电视206配置包括例如涉及在休闲的环境中的显示器的设备(例如电视机、机顶盒、游戏机、等等)的配置。因此,本文中所描述的技术可以通过计算设备102的这些各种配置来支持,并且不限于以下部分中所描述的特定示例。
[0039]云208被图示为包括用于web服务212的平台210。平台210抽象化硬件(例如,服务器)的基本功能和云208的软件资源,并且因此可以充当“云操作系统”。例如,平台210可以抽象化连接计算设备102与其他计算设备的资源。平台210还可以用于抽象化资源的缩放以提供对经由平台210实施的web服务212遇到的需求的对应规模水平。也设想各种其他示例,诸如服务器群中的服务器的负载平衡,保护免于恶意方(例如,垃圾邮件、病毒和其他恶意软件)等等。
[0040]因此,云208被包括作为涉及经由互联网或其他网络变得由计算设备102可用的软件和硬件资源的策略的部分。例如,在计算设备102上以及经由支持web服务212的平台210可以部分地实施手势模块104。
[0041]例如,由手势模块支持的手势技术可以使用移动配置202中的触摸屏功能,计算机204的配置的轨迹板功能来检测,通过作为不涉及与特定输入设备接触的自然用户界面(NUI)的支持的一部分的摄像机等等来检测。进一步,用于检测和识别输入来标识特定手势的操作的性能可以诸如通过计算设备102和/或云208的平台210支持的web服务212而分布在整个系统200。
[0042]大致地,本文中描述的任何功能可以使用软件、固件,硬件(例如,固定逻辑电路)、手动处理、或这些实施方式的组合来实施。如本文中所使用的术语“模块”、“功能”和“逻辑”大致地表示软件、固件、硬件或其组合。在软件实施方式的情况下,模块、功能或逻辑表示当在处理器(例如,一个或多个CPU)上执行或由该处理器执行时执行指定任务的程序代码。程序代码可以被存储在一个或多个计算机可读存储器设备中。以下描述的手势技术的特征是平台无关的,从而意味着该技术可被实施在具有各种处理器的各种商用计算平台上。
[0043]例如,计算设备还可以包括使计算设备的虚拟机或硬件执行操作的实体(例如,软件),例如,处理器、功能块、等等。例如,计算设备可以包括可以配置为维持该使所述计算设备并且更具体是计算设备的操作系统和相关联的硬件执行操作的指令的计算机可读介质。因此,指令运行以配置操作系统和相关的硬件来执行操作,并以这种方式导致操作系统和相关的硬件的变换以执行功能。该指令可由计算机可读介质通过各种不同的配置提供到计算设备。
[0044]一个这样的配置的计算机可读介质是信号承载介质,并且因此配置为诸如经由网络传输指令(例如,作为载波)到计算设备。计算机可读介质也可以配置为计算机可读存储介质,并且因此不是信号承载介质。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(R0M)、光盘、闪速存储器、硬盘存储器和其他存储器设备,其可能使用磁性、光学和其他技术来存储指令和其他数据。
[0045]在接下来的讨论中,各部分描述包括重新安排手势的示例交叉滑动和按下并保持手势。题为 “Method/Gesture for Disambiguating Touch Pan and Touch Drag” 的部分描述了拖放手势,该拖放手势可以在不去除依据一个或多个示例的平移或滚动的能力的情况下来执行。接下来,题为“Mult1-Threaded Architecture”的部分描述了一种体系结构,其依据一个或多个实施例允许在一个线程上操纵画面同时在另一线程上提供输入事件。在此之后,题为“Pre-layering”的部分描述了依据一个或多个实施例在发起拖动操作时,可如何几乎立即拖动可拖动元素的视觉表示。接下来,题为“Method/Gesture for IndependentAutomatic Scrolling”的部分描述了依据一个或多个实施例如何在拖动靠近可滚动区域的边缘的元素时触发滚动。在此之后,题为“Smooth Transit1ns of Z_0rder”的部分描述依据一个或多个实施例如何响应于手势被触发来为用户产生拖动画面以在周围拖动。接下来,题为 “Mapping of Touch Input to Mouse-1ntended Drag Drop APIs” 的部分描述了其中使用为鼠标输入而设计的拖放API的应用程序可以依据一个或多个实施例自动工作用于触摸输入的实施例。最后,题为“Example Device”的部分描述了可以用于实施一个或多个实施例的示例设备的方面。
[0046]澄清触摸平移和触摸拖动的方法/手势
经由web浏览器提供的传统拖放功能大致地基于基本拖放事件并且通常被设计用于结合鼠标消息的鼠标输入。拖放功能在使用指针消息而不是鼠标消息的触摸输入环境中可能不正确地运行。
[0047]为了在平移、选择和重新排列(拖放)之间澄清,各种触摸输入可以被利用。在一个实施例中,可以通过触摸输入,诸如交叉滑动手势或按下并保持手势发起拖动操作。按下并保持手势可以通过用户按在使能拖动的元素上并且保持手势稳定持续超过拖动阈值的持续时间来执行。可以利用任何适合的拖动阈值。响应于超过拖动阈值,拖放操作被触发,新的拖动画面被产生,并且用户可以自由地拖动拖动画面到页面上的新位置。
[0048]在至少一些实施例中,拖动操作可能由交叉滑动手势发起,如以上描述的那样。例如,web页面或应用程序可以限制平移到单一轴和允许在与平移轴不同(例如正交)的轴上拖动。交叉滑动手势可以通过用户在不同于平移轴的轴上对可拖动元素滑动手指来执行。交叉滑动手势可以发起至少两个不同的功能之一,这取决于是否该手指滑动超过距离阈值。可以利用任何适合的距离阈值。通过示例而非限制,可以使用约2.7mm的阈值距离来发起拖放操作。另一方面,如果手指滑动不超过距离阈值,则可以执行另一功能,诸如可拖动元素的选择。
[0049]然而,一些web浏览器和应用程序大致地提供垂直方向上的溢出以及水平方向或者基本上正交于平移方向的方向上的向前/向后导航平移。这提出了关于在元素上滑动手指时是否应发生拖动操作还是平移操作的冲突。作为示例,考虑提供用于平移文件列表的垂直滑动和用于触发浏览器的向前/向后导航的水平滑动的web站点。该web站点可以提出针对典型交叉滑动手势的挑战,因为在垂直或水平方向上的滑动手势将分别发起平移操作或向前/向后导航,而不是选择并拖动元素的操作。为了克服这种挑战,web站点可以利用如上文所述的按下并保持手势而不是交叉滑动手势,用于选择元素。
[0050]在一个实施例中,可以向用户提供一个视觉指示,以指示已成功发起拖放操作并且用户现在可以自由地拖动该元素。例如,元素可以“弹出”在页面中,并随着用户的手指在页面附近移动而跟从用户的手指,以给出该元素正“粘”到用户的手指的外观。可替代地或另外,该元素可能淡出并且然后在用户的手指下逐渐消失。以这种方式,通知用户拖动操作而不是平移或选择操作被执行。
[0051]在至少一些实施例中,一旦已发起拖放操作并且用户能够用第一手指拖动元素,然后用户就可以使用一个或多个附加手指或其他触摸输入设备来发起二次操作。例如,在使用第一手指对可拖动元素超过拖动阈值后,第二手指可以命中测试可滚动元素以发起平移,而第一手指继续拖动。因此,一旦拖动阈值已经被实现,第二接触能够与其他视口进行交互,好像拖动不发生那样,并且因此避免中断拖动操作。作为示例,考虑用户希望将元素从页面上的一个位置(诸如,在文档的顶部附近)拖动到当前未被显示的页面上的另一位置(诸如,在文档的底部附近)。在该特定示例中,用户可以使用按下并保持手势或交叉滑动手势来发起拖放操作以将元素“粘”到用户的手指,并且然后使用第二手指来平移页面到其中用户可以放下该元素的另一位置。
[0052]现在考虑图3,图3是描述依据一个或多个实施例的方法中的步骤的流程图。该方法可以结合任何合适的硬件、软件、固件、或其组合来实施。在至少一些实施例中,可以通过适当地配置的系统诸如包括独立命中测试线程的系统来实施该方法。
[0053]步骤300接收与使能拖动的
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1