用于语义缩放的编程接口的制作方法

文档序号:6376603阅读:201来源:国知局
专利名称:用于语义缩放的编程接口的制作方法
用于语义缩放的编程接口
背景技术
用户可以访问日益多样的内容。另外,用户可用的内容数量不断增加。例如,用户在工作时可以访问各种各样不同的文档,在家时可以访问许多歌曲,在移动电话上可以存储各种各样的照片,等等。然而,当面对即使临时用户在通常的一天中也可能访问的大量内容时,计算设备用于在该内容中导航的传统技术可能变得不堪重负。因此,用户可能难以定位感兴趣的内容,这会导致用户受挫并且阻碍用户对计算设备的感知和使用。

发明内容
描述了语义缩放技术。在一种或更多种实现中,描述了可以由用户用来在感兴趣的内容中导航的技术。这些技术也可以包括各种不同的特性,诸如以支持语义置换(semantic swap)以及“缩小”和“放大”。这些技术也可以包括各种不同的输入特征,诸如支持手势(gesture)、光标控制装置和键盘输入。也支持在具体实施方式
和附图中进一步描述的各种其它特征。提供该发明内容以简化形式引入概念的选择,其将下面在具体实施方式
中被进一步描述。该发明内容并不旨在于识别所请求保护的主题的关键特征或实质特征,也不旨在用作帮助确定所请求保护的主题的范围。


参照附图描述具体实施方式
。在附图中,参考标号的最左数字识别其中参考标号首次出现的图。在描述和附图中的不同实例中相同参考标号的使用可以表明类似或相同的项目。图1是在可操作为采用语义缩放技术的示例性实现中的环境的图示。图2是其中利用手势在底层(underlying)内容的视图之间导航的语义缩放的示例性实现的图示。图3是第一高端语义阈值的示例性实现的图示。图4是第二高端语义阈值的示例性实现的图示。图5是第一低端语义阈值的示例性实现的图示。图6是第二低端语义阈值的示例性实现的图示。图7描绘了可以用于语义缩放的校正动画的示例性实施例。图8描绘了其中示出可以用作语义置换部分的交叉淡化(crossfade)动画的示例性实现。图9是包括语义标题的语义视图的示例性实现的图示。图10是模板的示例性实现的图示。图11是另一模板的示例性实现的图示。图12是描绘其中操作系统向应用显露(expose)语义缩放功能性的示例性实现进程的流程图。图13是描绘其中利用阈值来触发语义置换的示例性实现过程的流程图。图14是描绘其中使用基于操作的手势来支持语义缩放的示例性实现过程的流程图。图15是描绘其中使用手势和动画来支持语义缩放的示例性实现过程的流程图。图16是描绘其中计算矢量以平移可滚动项目列表并且使用校正动画来去除列表的平移的示例性实现过程的流程图。图17是描绘其中将交叉淡化动画用作语义置换部分的示例性实现过程的流程图。图18是描绘用于语义缩放的编程接口的示例性实现过程的流程图。图19图示了可以被配置用于实现这里描述的语义缩放技术的计算设备的各种配置。图20图示了可以实现为如参照图1-图11和图19描述的用于实现这里描述的语义缩放技术的实施例的任何类型的便携式和/或计算机设备的示例性设备的各种组件。
具体实施例方式概沭
即使临时用户在通常的一天中访问的内容数量也不断增加。因此,用来在该内容中导航的传统技术会变得不堪重负并且导致用户受挫。在以下讨论中描述语义缩放技术。在一种或更多种实现中,可以使用该技术来在视图内导航。利用语义缩放,用户可以通过“跳转”到视图内期望的位置而在内容中进行导航。附加地,这些技术可以允许用户调整在给定时间在用户界面中呈现多少内容以及被提供用于描述内容的信息量。因此,可以向用户提供用于调用语义缩放来进行跳转并且然后返回到它们的内容的信心(confidence)。此外,可以使用语义缩放来提供内容的概要,这可以帮助提高用户在内容中导航时的信心。语义缩放技术的附加讨论可以在以下章节中找到。在以下讨论中,首先描述可操作为采用这里描述的语义缩放技术的示例性环境。然后描述手势以及涉及该手势和其它输入的过程的示例性图示,其可以在示例性环境中以及在其它环境中采用。因此,示例性环境并不限于执行示例性技术。类似地,示例性过程并不限于在示例性环境中的实现。示例件环境
图1是可操作为采用这里描述的语义缩放技术的示例性实现中的环境100的图示。图示的环境100包括可以按照各种方式配置的计算设备102的示例。例如,计算设备102可以配置用于包括处理系统和存储器。因而,计算设备102可以配置为传统计算机(例如桌面型个人计算机、膝上型计算机等)、移动台、娱乐设施、通信地耦合到电视的机顶盒、无线电话、上网本、游戏机等等,如关于图19和图20进一步描述的那样。因此,计算设备102的范围可以从具有大量存储器和处理器资源的全资源设备(例如个人计算机、游戏机)到具有有限存储器和/或处理资源的低资源设备(例如传统机顶盒、手持游戏机)。计算设备102也可以涉及使得计算设备102执行一种或更多种操作的软件。计算设备102也图不为包括输入/输出模块104。输入/输出模块104代表与计算设备102所检测到的输入有关的功能性。例如,输入/输出模块104可以被配置为操作系统的一部分,以便抽象计算设备102对运行在计算设备102上的应用106的功能。输入/输出模块104例如可以配置用于辨别通过用户的手110与显示装置108的交互(例如使用触摸屏功能性)而检测到的手势。因而,输入/输出模块104可以代表用于识别手势并使得执行对应于手势的操作的功能性。可以由输入/输出模块104按照各种不同方式识别这些手势。例如,输入/输出模块104可以配置用于辨别触摸输入,诸如用户的手110的手指靠近使用触摸屏功能性的计算设备102的显示装置108。触摸输入也可以辨别为包括属性(例如运动、选择点等),该属性可用于将该触摸输入与输入/输出模块104辨别的其它触摸输入区分开。该区分然后可以用作基础来识别来自触摸输入的手势并且因而识别将基于该手势的识别而执行的操作。例如,用户的手110的手指图示为靠近显示装置108而放置并且向左移动(由箭头所示)。因此,用户的手Iio的手指和随后移动的检测可以由输入/输出模块104辨别为用于按照移动方向在内容表示中导航的“平扫(pan)”手势。在图示实例中,这些表示配置为表示计算设备102的文件系统中的内容项目的贴块(tiIe)。这些项目可以本地地存储在计算设备102的存储器中,可经由网络远程访问,代表通信地耦合到计算设备102的设备,等等。因而,可以由输入/输出模块104辨别各种不同类型的手势,诸如从单个类型的输入中辨别的手势(例如,触摸手势,诸如先前描述的拖放手势)以及涉及多个类型的输入的手势,例如复合手势。输入/输出模块104也可以检测并处理各种其它输入,诸如来自键盘、光标控制装置(例如鼠标)、触控笔、轨迹板等的其它输入。以此方式,应用106可以起作用,而无需“知晓”计算设备102如何实现操作。尽管下面的讨论可以描述手势、键盘和光标控制装置输入的特定示例,但应容易明白的是,这些只是设想与这里描述的语义缩放技术一起使用的各种不同示例中的一些示例。输入/输出模块104进一步图示为包括语义缩放模块114。语义缩放模块114表示计算设备102采用这里描述的语义缩放技术的功能性。用于在数据中导航的传统技术可能难以使用触摸输入实现。例如,用户可能难以使用传统滚动条来定位具体内容块。语义缩放技术可以用于在视图内导航。利用语义缩放,用户可以通过“跳转”到视图内的期望位置来在内容中导航。附加地,可以在不改变内容的底层结构的情况下利用语义缩放。因此,可以向用户提供调用语义缩放进行跳转并且然后返回到它们的内容的信心。此外,语义缩放可以用于提供内容的概述,这可以帮助增加用户在内容中导航时的信心。语义缩放模块114可以配置用于支持多个语义视图。此外,语义缩放模块114可以“预先”生成语义视图,使得准备好一旦如上所述语义置换被触发就进行显示。显示装置108图示为在语义视图(在下面的讨论中这也可以称为“放大视图”)中显示内容的多个表示。在图示实例中这些表示被配置为贴块。语义视图中的贴块可以被配置成不同于其它视图中的贴块,该其它视图诸如可以包括用于发起应用的贴块的开始屏幕。例如,这些贴块的尺寸可以设定为它们“正常尺寸”的27. 5%。在一种或更多种实现中,该视图可以被配置为开始屏幕的语义视图。但该视图中的贴块可以由色块构成,其与正常视图中的颜色块相同,但不包含用于显示通知(例如用于涉及天气的贴块的当前温度)的空间,尽管也设想其它示例。因而,贴块通知更新可以延迟并且当用户退出语义缩放时针对后续输出批量化(即“放大视图”)。如果安装或去除新的应用,语义缩放模块114可以从网格中添加或去除对应的贴块,而不管“缩放”水平如何,如下面进一步描述的那样。附加地,语义缩放模块114然后可以相应地重新布局贴块。在一种或更多种实现中,网格内的组的形状和布局将在语义视图中保持不变为正常视图,例如100%视图。例如,网格中的行数可以保持相同。然而,由于更多的贴块将可视,所以相比正常视图中而言,语义缩放模块114会下载更多的贴块信息。这些以及其它技术的进一步讨论可以在关于图2的开始处找到。一般而言,这里描述的任何功能都可以使用软件、固件、硬件(例如固定逻辑电路系统)或这些实现的组合来实现。这里使用的术语“模块”、“功能性”和“逻辑”一般表示软件、固件、硬件或其组合。在软件实现的情况中,模块、功能性或逻辑表示当在处理器(例如一个或更多个CPU)上执行时实现指定任务的程序代码。程序代码可以存储在一个或更多个计算机可读存储器设备中。以下描述的语义缩放技术的特征是与平台无关的,意味着该技术可以在具有各种处理器的各种商用计算平台上实现。例如,计算设备102也可以包括使得计算设备102的硬件执行操作的实体(例如软件),例如处理器、功能块等。例如,计算设备102可以包括可以配置为保持指令的计算机可读介质,该指令使得计算设备并且更具体地计算设备102的硬件执行操作。因而,指令用于配置硬件来实现操作并且以此方式导致将硬件转换为实现功能。该指令可以由计算机可读介质通过各种不同配置提供给计算设备102。计算机可读介质的一种这样的配置是信号承载介质,并且因而被配置用于将指令(例如作为载波)诸如经由网络传送到计算设备的硬件。计算机可读介质也可以被配置为计算机可读存储介质并且因而不是信号承载介质。计算机可读存储介质的示例包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、闪速存储器、硬盘存储器和可以使用磁、光和其它技术来存储指令和其它数据的其它存储器设备。图2描绘了其中利用手势来在底层内容视图之间导航的语义缩放的示例性实现200。这些视图在本示例性实现中使用第一阶段202、第二阶段204和第三阶段206图示。在第一阶段202处,计算设备102图示为在显示设备108上显示用户界面。用户界面包括可经由计算设备102的文件系统访问的项目的表示,其图示示例包括文档和电子邮件以及对应的元数据。然而,应容易明白的是,包括设备的各种其它内容可以表示在先前描述的用户界面中,然后可以使用触摸屏功能性对其进行检测。用户的手110在第一阶段202处图示为发起“夹捏(pinch)”手势以“缩小”这些表示的视图。在该实例中通过靠近显示装置108放置用户的手110的两个手指并且将它们朝向彼此移动来发起该夹捏手势,这然后可以使用计算设备102的触摸屏功能性检测到。在第二阶段204处,用户的手指的接触点使用带有指示移动方向的箭头的幻影圆图示。如图示那样,包括图标和元数据作为单独项目表示的第一阶段202的视图转变成第二阶段204中使用单个表示的项目群组的视图。换言之,每个项目群组具有单个表示。群组表示包括指示用于形成组的标准(例如共同特质)的标题,并且具有表明相对群体尺寸的尺寸。在第三阶段206处,与第二阶段204相比,接触点移动得更紧靠在一起,使得可以在显示装置108上并行显示更大数目的项目群组表示。在释放手势之后,用户可以使用各种技术在表示中导航,诸如平扫手势、光标控制装置的点击-拖拽操作、键盘的一个或更多个按键等。以此方式,用户可以容易地导航到表示的期望颗粒度级别,在该级别对表示进行导航等等,以定位感兴趣的内容。应容易明白的是,在这些步骤也可以反向,以“放大”这些表示的视图,例如可以将接触点远离彼此移动作为“反向夹捏手势”以控制语义缩放中显示的细节级别。因而,上述语义缩放技术涉及语义置换,语义置换是指当放大和缩小时内容视图之间的语义转变。语义缩放技术可以通过由每个视图的放大和缩小导致转变来进一步增加体验。尽管描述了夹捏手势,但该技术可以使用各种不同输入进行控制。例如,也可以利用“敲击”手势。在敲击手势中,敲击可以使得视图例如通过敲击一个或更多个表示在缩小和放大的视图之间转变。该转变可以使用如上所述利用的夹捏手势的相同转变动画。语义缩放模块114也可以支持可反向的夹捏手势。在本示例中,用户可以发起夹捏手势并且然后通过在相反方向上移动他们的手指来决定取消该手势。作为响应,语义缩放模块114可以支持取消场景以及到前一视图的转变。在另一示例中,也可以使用滚动轮和“Ctrl”键组合控制语义缩放以进行放大和缩小。在另一示例中,在键盘上“ctrl”和“ + ”或键组合可以分别用于放大或缩小。也设想各种各样的其它示例。阈倌
语义缩放模块114可以采用各种不同的阈值来管理与这里描述的语义缩放技术的交互。例如,语义缩放模块114可以利用语义阈值来指定将出现视图置换的缩放级别,例如在第一阶段202和第二阶段204之间。在一种或更多种实现中,这是基于距离的,例如取决于夹捏手势中接触点的移动量。语义缩放模块114也可以采用指向操作(direct manipulation)阈值来确定当完成输入时“快照(snap)”视图的缩放级别。例如,用户可以提供先前描述的夹捏手势来导航到期望的缩放级别。用户然后可以释放该手势以对该视图中的内容表示进行导航。指向操作阈值因而可以用于确定视图将保持在哪一级别以支持在语义“置换”之间实现的缩放程度和该导航,语义“置换”的示例在第二阶段204和第三阶段206中示出。因而,一旦视图达到语义阈值,语义缩放模块114就可以引起语义画面的置换。附加地,语义阈值可以根据定义缩放的输入的方向来改变。这可以起到减少闪烁的作用,该闪烁可能另外发生在缩放方向被反向时。在图3的示例性实现300中图示的第一示例中,第一高端语义阈值302可以设定在例如可以由语义缩放模块114针对手势辨别的移动的约80%处。例如,如果用户初始处于100%的视图中并且开始缩小,则当输入达到第一高端语义阈值302定义的80%时可以触发语义置换。在图4的示例性实现400中图示的第二示例中,也可以由语义缩放模块114定义和利用第二高端语义阈值402,其可以设定为高于第一高端语义阈值302,例如在大约85%。例如,用户可以在100%的视图开始并在第一高端语义阈值302处触发语义置换但不“放开”(例如,仍提供定义手势的输入)并决定使缩放方向反向。在该实例中,当到达第二高端语义阈值402时输入将触发回到常规视图的置换。低端阈值也可以被语义缩放模块114利用。在图5的示例性实现500中图示的第三示例中,第一低端语义阈值502可以设定在例如大约45%。如果用户初始处于27. 5%的语义视图中并且提供输入以开始“放大”,则当输入到达第一低端语义阈值502时可以触发语义置换。在图6的示例性实现600中图示的第四示例中,第二低端语义阈值602也可以定义在诸如大约35%处。类似于前一示例,用户可以在27. 5%的语义视图处开始(例如,启动屏幕)并触发语义置换,例如缩放百分比大于45%。而且,用户可以继续提供输入(例如扣住鼠标保持“点击”,仍“做手势”,等)并且然后决定使缩放方向反向。当到达第二低端语义阈值时语义缩放模块114可以触发回到27. 5%视图的置换。因而,在关于图2至图6所示和所讨论的示例中,可以使用语义阈值来定义在语义缩放期间何时出现语义置换。在这些阈值之间,视图可以继续响应于指向操作在视觉上放大和缩小。快·照点(snap point)
当用户提供放大或缩小的输入(例如在夹捏手势中移动它们的手指)时,显示表面可以通过语义缩放模块114在视觉上相应缩放。然而,当输入停止(例如用户放开手势)时,语义缩放模块114可以产生动画至特定缩放级别,该特定缩放级别可以称为“快照点”。在一种或更多种实现中,这基于输入停止时(例如当用户“放开”)的当前缩放百分比。 可以定义各种不同的快照点。例如,语义缩放模块114可以定义100%快照点,在该快照点处,内容按照不进行缩放的“常规模式”显示,例如具有完全保真度。在另一示例中,语义缩放模块114可以定义对应于在27. 5%处的包括语义画面的“缩放模式”的快照点。在一种或更多种实现中,如果存在比基本消耗显示装置108的可用显示区域更少的内容,则可以自动地且无需用户介入地通过语义缩放模块114设定快照点为将使得该内容基本上“填充”显示装置108的任何值。因而,在本示例中,内容将不再缩放的小于27. 5%的“缩放模式”,而是可以更大。当然也可以设想其它示例,诸如使得语义缩放模块114选择多个预定义缩放级别中对应于当前缩放级别的一个级别。因而,语义缩放模块114可以与快照点相结合地利用阈值,以确定当输入停止(例如用户“放开”手势、释放鼠标按钮、在指定时间量之后停止提供键盘输入等等)时视图将着陆在何处。例如,如果用户正在缩小且缩小百分比大于高端阈值百分比并且停止输入,则语义缩放模块114可以使得视图快照回到100%快照点。在另一示例中,用户可以提供用于缩小的输入并且缩小百分比小于高端阈值百分t匕,此后用户可以停止输入。作为响应,语义缩放模块114可以将视图绘制(animate)到27. 5%快照点。在其它示例中,如果用户在缩放视图(例如在27. 5%)开始并且以小于低端语义阈值百分比的百分比启动放大且停止,则语义缩放模块114可以使得视图快照回到该语义视图,例如27. 5%。在又一示例中,如果用户在语义视图中(在27. 5%)开始并且以大于低端阈值百分比的百分比启动放大且停止,则语义缩放模块114可以使得视图向上快照到100%视图。
快照点也可以用作缩放边界。如果用户提供输入,指示用户正在试图“穿过”这些边界,例如,语义缩放模块114可以输出动画显示“过缩放反弹(over zoom bounce)”。这可以用于提供反馈以让用户知道缩放正在进行以及阻止用户缩放超过该边界。另外,在一种或更多种实现中,语义缩放模块114可以被配置用于对计算设备102变为“空闲”作出响应。例如,语义缩放模块114可以处于缩放模式(例如27. 5%视图),在此期间会话变为空闲,诸如由于屏幕保护程序、锁屏等。作为响应,语义缩放模块114可以退出缩放模式并且返回到100%视图级别。也设想各种其它示例,诸如使用通过移动检测到的速度来辨别一个或更多个手势。基于手势的操作
可以按照各种方式配置用于与语义缩放交互的手势。在第一示例中,支持当检测到输入时使得“立即”操作视图的行为。例如,参照图2,一旦检测到用户已经在夹捏手势中移动它们的手指的输入,视图就可以开始收缩。此外,缩放可以配置用于“当输入发生时跟随输入”以进行放大和缩小。这是提供实时反馈的基于操作的手势的示例。当然,反向夹捏手势也可以是基于操作的以跟随输入。如前面描述的那样,也可以利用阈值来确定在操作和实时输出期间“何时”切换视图。因而,在本示例中,视图可以通过第一手势被缩放,所述第一手势跟随如在输入中描述的在其发生时的用户的移动。也可以定义第二手势(例如语义置换手势),该第二手势涉及用于如上所述触发视图之间的置换(例如与另一视图的交叉淡化)的阈值。在另一示例中,可以与动画一起采用手势来执行视图的缩放以及甚至视图的置换。例如,语义缩放模块114可以检测用户的手110的手指的移动,如之前在夹捏手势中使用的那样。一旦针对手势的定义已经满足了所定义的移动,则语义缩放模块114就可以输出动画来显示缩放。因而,在本示例中,缩放并不实时地跟随移动,而是可以近实时地这样做,使得用户可能难以辨别两种技术之间的不同。应容易明白的是,该技术可以继续引起视图的交叉淡化和置换。该其它示例在低资源场景中对于保存计算设备102的资源可以是有利的。在一种或更多种实现中,语义缩放模块114可以“等待”直到输入完成(例如,用户的手110的手指从显示装置108移开)并且然后使用上述快照点中的一个或更多个来确定待输出的最终视图。因而,可以使用动画来放大和缩小(例如切换移动)并且语义缩放模块114可以引起对应动画的输出。语义视图交互
再次返回图1,语义缩放模块114可以被配置用于支持在语义视图中时的各种不同交互。此外,这些交互可以设定为不同于“常规”的100%视图,但也设想了其中交互相同的其它示例。例如,从语义视图不可以激活贴块。然而,选择(例如敲击)贴块可以使得视图在敲击位置中心的位置处缩放回到正常视图。在另一示例中,如果用户将在图1的语义视图中敲击飞机贴块,则一旦放大到正常视图,则飞机贴块将仍接近提供敲击的用户的手110的手指。附加地,“放大回”可以在敲击位置水平地居中,而垂直对准可以基于网格的中心。如前面描述的那样,也可以通过光标控制装置触发语义置换,诸如通过按下键盘上的修改键并且同时使用鼠标上的滚动轮(例如“CTRL+ ”和滚动轮格(notch)的移动),“CTRL+”和轨迹板滚动边缘输入,选择语义缩放116按钮,等等。快捷的按键组合例如可以用来在语义视图之间切换。为了防止用户进入“中间”状态,相反方向中的旋转可以引起语义缩放模块114将视图绘制到新的快照点。然而,相同方向中的旋转将不会导致视图的改变或缩放级别的改变。缩放可以以鼠标的位置为中心。附加地,如果用户试图导航穿过缩放边界,则可以使用“过缩放回弹”动画来给用户反馈,如前面描述的那样。用于语义转变的动画可以是基于时间的,并且涉及光学缩放,之后是用于实际置换的交叉淡化,并且然后是继续的光学缩放到最终快照点缩放级别。语义缩放居中和对准
当语义“缩小”发生时,缩放可以居中于输入(诸如夹捏、敲击、光标或焦点位置等)的位置上。可以通过语义缩放模块114计算哪个群组最接近该输入位置。该群组然后可以与进入视图的对应语义群组项目左对准,例如在语义置换后。对于分组网格视图,语义群组项目可以与标题对准。当语义“放大”发生时,缩放可以居中于输入(诸如夹捏、敲击、光标或焦点位置等)的位置上。同样,语义缩放模块114可以计算哪个语义群组项目最接近输入位置。该语义群组项目然后可以与当进入视图时来自放大视图的对应群组对准,例如在语义置换后。对于分组网格视图,标题可以与语义群组项目对准。如前面描述的那样,语义缩放模块114也可以支持平扫以在期望缩放级别显示的项目之间导航。其示例通过箭头图示以指示用户的手110的手指的移动。在一种或更多种实现中,语义缩放模块114可以预先获取并呈现用于在视图中显示的内容的表示,这可以基于包括探试程序的各种标准、基于控件的相对平扫轴等等。该预先获取也可以用于不同缩放级别,使得表示“准备好”用于输入以改变缩放级别、语义置换等。此外,在一种或更多种附加实现中,语义缩放模块114可以“隐藏”镶边(chrome)(例如控件、标题等 的显示),这可以与语义缩放功能性本身有关或者可以不与之有关。例如,该语义缩放116按钮在缩放期间可以隐藏。也设想各种其它示例。校ιΗ动画
图7描绘了可以用于语义缩放的校正动画的示例性实施例700。示例性实施例通过使用第一阶段702、第二阶段704和第三阶段706图示。在第一阶段702处,示出包括名称“Adam”、“Alan”、“Anton”和“Arthur”的可滚动项目列表。名称“Adam”靠着显示装置108的左边缘显示,名称“Arthur”靠着显示装置108的右边缘显示。然后可以从名称“Arthur”接收夹捏输入以进行缩小。换言之,用户的手的手指可以定位在名称“Arthur”的显示上方并移动到一起。在该情况下,这可以引起交叉淡化并且使得执行放缩动画从而实现语义置换,如在第二阶段704中所示。在第二阶段处,显示字母
和“C”其与检测到输入的点最接近,例如,就像用于显示“Arthur”的显示装置108部分那样。因而,以此方式,语义缩放模块114可以确保“A”与名称“Arthur”左对准。在该阶段,输入继续,例如用户没有(放开)。然后一旦输入停止,例如用户手的手指从显示装置108移开,则可以利用校正动画来“填充显示装置108”。例如,可以显示动画,其中在本示例中该列表“向左滑”,如在第三阶段706中所示。然而,如果用户没有“放开”而是输入反向夹捏手势,则可以输出语义置换动画(例如交叉淡化和放缩)以返回到第一阶段702。
在其中用户在交叉淡化和放缩动画已经完成之前“放开”的实例中,可以输出校正动画。例如,在“Arthur”完全淡出之前,两种控制都可以如此平移,名称将显示为向左收缩和平移,使得在向左平移时的整个时间,名称都保持与“A”对准。对于非触摸输入情况(例如,光标控制装置或键盘的使用),语义缩放模块114可以表现为如同用户已经“放开”,所以在放缩和交叉淡化动画的同时开始平移。因而,可以将校正动画用于视图之间的项目的对准。例如,不同视图的项目可以具有对应的描述该项目的尺寸和位置的边界矩形。语义缩放模块114然后可以利用功能性来在视图之间对准项目,使得视图之间的对应项目符合这些边界矩形,例如无论是左对准、中心对准或是右对准。再次返回图7,在第一阶段702中显示可滚动项目列表。在没有校正动画的情况下,从显示装置的右侧上的条目(例如Arthur)缩小将不与来自第二视图的对应表示例如“A”对齐,因为在本示例中它将在显示装置108的左边缘对准。因此,语义缩放模块114可以显露编程接口,该编程接口被配置用于返回矢量,该矢量描述要将控件(例如可滚动项目的列表)平移多少来对准视图之间的项目。因而,语义缩放模块114可以用于平移控件以如第二阶段704中所示那样“保持对准”,并且在释放时,语义缩放模块114可以如第三阶段706中所示那样“填充显示”。校正动画的进一步讨论可以关于示例性过程找到。交叉淡化动画
图8描绘了其中示出可以用作语义置换的一部分的交叉淡化动画的示例性实现。该示例性实现800通过使用第一阶段802、第二阶段804和第三阶段806来图示。如前面描述的那样,交叉淡化动画可以被实现为语义置换的一部分以在视图之间转变。例如图示实现的第一阶段802、第二阶段804和第三阶段806可以响应于夹捏或其它输入(例如键盘或光标控制装置)在图2的第一阶段202和第二阶段204中所示的视图之间转变,以发起语义置换。在第一阶段802处,示出了文件系统中的项目的表示。接收引起在第二阶段所示的交叉淡化动画804的输入,其中可以将不同视图的划分一起示出,诸如通过使用不透明度、透明度设置等。这可以用来转变到在第三阶段806中所示的最终视图。交叉淡化动画可以按照各种方式实现。例如,可以使用用于触发输出动画的阈值。在另一示例中,手势可以是基于移动的,使得不透明度实时地跟随输入。例如,可以基于通过输入描述的移动量来施加针对不同视图的不同不透明度级别。因而,随着移动被输入,可以降低初始视图的不透明度并且可以增加最终视图的不透明度。在一种或更多种实现中,也可以使用快照技术来当输入停止时(例如,用户的手的手指从显示装置移开时)基于移动量将视图快照到任一视图。焦点
当发生放大时,语义缩放模块114可以聚焦于群组中正被“放大”的第一项目。这也可以配置为在特定时间之后淡出或者一旦用户开始与视图交互就淡出。如果焦点还没有改变,那么当用户放大回到100%视图时,在语义置换之前占有焦点的相同项目将继续占有焦点。在语义视图中的夹捏手势期间,可以将焦点施加于正在受夹捏的组的周围。如果用户在转变之前将他们的手指移动到不同组上,则可以将焦点指示符更新到该新的组。语义标是页
图9描绘了包括语义标题的语义视图到的示例性实现900。每个语义标题的内容可以按照各种方式提供,以便列出由标题、终端开发者(例如使用HTML)等等所定义的组的共同标准。在一种或更多种实现中,用于与在视图之间转变的交叉淡化动画例如在缩小期间可以不涉及群组标题。然而,一旦输入已经停止(例如用户已经“放开”)并且视图已经被快照,则标题可以被绘制“回去”用于显示。如果分组的网格视图正在被置换为该语义视图,例如语义标题可以包含针对该分组网格视图而由终端开发者定义的项目标题。图像和其它内容也可以是语义标题的一部分。标题的选择(例如,敲击、鼠标点击或键盘激活)可以使得视图缩放回到100%视图,其中缩放居中于敲击、夹捏或点击位置。因此,当用户在语义视图中的群组标题上敲击时,该群组在放大视图中出现在敲击位置附近。例如语义标题的左边缘的“X”位置可以与放大视图中的该群组的左边缘的“X”位置对齐。用户也可以使用箭头按键来在群组之间移动,例如使用箭头按键来移动群组之间的焦点画面。樽板
语义缩放模块114也可以支持可以由应用开发者利用的针对不同布局的各种不同的模板。例如,采用这种模板的用户接口的示例在图10的示例性实现1000中图示出。在本示例中,模板包括布置在网格中的贴块,其具有针对该群组的标识符,在本情况下该标识符为字母和数字。贴块如果填充则也包括表示群组的项目,例如用于“a”群组的飞机,而“e”群组不包括项目。因而,用户可以容易地确定群组是否被填充并且在该语义缩放的这一缩放级别上在群组之间导航。在一种或更多种实现中,标题(例如代表项目)可以由利用语义缩放功能性的应用的开发者指定。因而,本示例可以提供内容结构的抽象视图以及用于群组管理任务的机会,例如选择来自多个群组的内容、重新布置群组等。在图11的示例性实施例1100中示出了另一示例性模板。在本示例中,也示出了字母,其可以用于在内容的群组之间导航并且因而可以提供语义缩放级别。该示例中的字母构成群组,后者具有用作标记(例如指示牌)的更大字母,使得用户可以快速地定位感兴趣的字母并且因而定位感兴趣的群组。因而,图示了由群组标题构成的语义画面,其可以为在100%视图中找到的“放大”版本。语义缩放语言助手
如上所述,语义缩放可以实现为先触摸特性,其允许用户利用夹捏手势获得其内容的全局视图。语义缩放可以由语义缩放模块114实现,以创建底层内容的抽象视图,从而许多项目可以适合于更小的区域中,同时仍可容易地在不同粒度级别上访问。在一种或更多种实现中,语义缩放可以利用抽象来将项目分组成中若干种类,例如按照日期,按照首字母,
坐坐寸寸ο在首字母语义缩放的情况下,每个项目可以落入由其显示名称的首字母确定的种类,例如“Green Bay (绿湾)”归入标题“G”的群组。为了执行该分组,语义缩放模块114可以确定两个以下数据点(1)将用于表示缩放视图(例如整个字母表)中的内容的群组;以及(2)视图中每个项目的首字母。
在英语的情况中,生成简单的首字母的语义缩放视图可以实现如下
-存在28个群组
O 26个拉丁字母表字母 O I个数字群组 O I个符号群组
然而,其它语言使用不同的字母表,并且有时将字母收集起来,这会使得更难以识别给定字的首字母。因此,语义缩放模块114可以采用各种技术来处理这些不同的字母表。诸如中文、日语和韩语之类的东亚语言对于第一字母分组可能是有问题的。首先,这些语言中的各语言都利用中文表意(汉语)字符,该中文表意字符包括数千个单独字符。例如日语的识字说话者熟悉至少两千个单独字符,并且目对于中文的说话者来说该数可能更大。这意味着给定一个项目列表,存在很高的概率每个字可能以不同的字符开始,从而采用第一个字符的实现可能实际上为列表中的每一条目都创建一个新的群组。此外,如果不考虑统一码代理对(Unicode surrogate pair)并且单独使用第一个WCHAR,则可能存在如下情况其中分组字母将分解到无意义的方形盒。在另一示例中,韩语,尽管偶尔使用汉语字符,主要使用本土的韩语脚本。尽管它是音标字母,但一万一千以上的韩语统一码字符中的每个字符可以表示两个至五个字母的整个音节,称为“ jamo”。东亚排序方法(除了日语XJIS之外)可以采用将汉字/韩语字符分组成19-214个群 组(基于音节、词根或笔划数)的技术,使得对东亚字母表的用户有直观意义。此外,东亚语言通常确保“全宽(full width) ”拉丁字符,其为方形而不是矩形,以与方形的中文/日语/韩语字符对齐,例如
Half w id Ih
Full wi d I h
因此,除非执行宽度归一化,否则半宽“A”群组可以紧跟全宽“A”群组。然而,用户通常将它们视为相同的字母,所以它对于这些用户而言将看上去像错误一样。这同样适用于两个日语假名字母(平假名和片假名),其排序在一起并且将被归一化以避免显示差群组。附加地,使用基本的“拾取首字母”的实现对于许多欧洲语言也会给出不准确的结果。例如,匈牙利语字母表包括以下44个字母
A ABC Cs D Dz Dzs EEFG Gy H 11 J K L Ly M N Ky O O O O P <Q)
RS Sz T Ty U U U IJ V (W) (X) | Y) Z Zs
从语言上讲,这些字母中的每个字母都是唯一排序元素。因此,将字母“D”、“Dz”和“Dzs”组合到同一组中可能看上去是错误的并且对于通常的匈牙利语用户而言是不直观的。在一些更极端的情况中,存在一些藏语“单字母”,其包括多于8个的WCHAR。具有“多字符”字母的其它语言包括高棉语、科西嘉语、布列塔尼语、阿劳干(Mapudungun)语、索布语、毛利语、维吾尔语、阿尔巴尼亚语、克罗地亚语、塞尔维亚语、波斯尼亚语、捷克语、丹麦语、格陵兰语、匈牙利语、斯洛伐克语、西班牙语(传统的)、威尔士语、马耳他语、越南语等。在另一示例中,瑞典语字母表包括以下字母A B C D E F G H I J K L \I N O P Q R S T LI V XYZ Λ A O
注意,“A”是与“A”和“A”明显不同的字母,并且后者两个字母在字母表中在“z”之后。而对于英语而言,将“A”视为“A”的变音符号被移除,因为对于英语一般不期望两个群组。然而,如果相同逻辑应用于瑞典语,则要么复制的“A”组定位在“Z”之后要么该语言被不正确地排序。类似的情形可能在将特定重音字符处理为不同字母的相当少的其它语言中碰到,包括波兰语、匈牙利语、丹麦语、挪威语等。语义缩放模块114可以显露各种API以供排序中使用。例如,可以显露字母表和首字母API,使得开发者可以决定语义缩放模块114如何寻址项目。语义缩放模块114可以实现为例如从操作系统中的unisort, txt文件生成字母表表格,使得可以利用这些表格来提供字母表以及分组服务。例如可以利用该特性解析unisort, txt文件并产生语言上一致的表格。这可以涉及针对参考数据(例如外部源)验证默认输出以及创建当标准排序并非用户所期望时的特设例外情况。语义缩放模块114可以包括字母表API,这可以用于基于地区(locale)/排序来返回被认为是字母表的结果,例如,在该地区的人通常将在词典、电话本等中看到的标题。如果针对给定字母存在多于一个的表示,则语义缩放模块114可以使用被辨别为最常用的一个表示。以下是用于代表性语言的一些示例
权利要求
1.一种由计算设备实现的方法,所述方法包括 显露具有一个或更多个方法的编程接口,所述方法可定义为将控制的使用实现为语义缩放中的多个视图之一(1802);以及 配置视图以在语义缩放中使用,该语义缩放包括语义置换操作以响应于用户输入而在多个视图之间切换(1804)。
2.根据权利要求1所述的方法,其中多个视图的每一个包括项目的可滚动表示。
3.根据权利要求1所述的方法,其中所述方法中的至少一个被配置为确定一个或者更多个所述控制要进行平扫的轴。
4.根据权利要求1所述的方法,其中所述方法中的至少一个被配置用于当缩放正在进行时通知控制。
5.根据权利要求1所述的方法,其中所述方法中的至少一个被配置为将多个视图中的一个与另一个对准,以作为用所述另一个视图来替换所述一个视图的一部分。
6.根据权利要求1所述的方法,其中所述编程接口被配置为供动态型语言使用。
7.根据权利要求6所述的方法,其中供动态型语言使用的配置包括针对所述一个或者更多个方法被附加至的对象进行评估的公共属性。
8.根据权利要求1所述的方法,其中所述一个或者更多个方法是静态型语言中的接口的直接成员。
9.根据权利要求1所述的方法,其中所述语义置换被配置为由键盘命令、光标控制设备或者手势发起。
10.根据权利要求9所述的方法,其中所述手势是夹捏或者反向夹捏手势。
11.一个或更多包括计算机可执行指令的计算机可读存储介质,所述计算机可执行指令响应于被计算设备执行而导致所述计算设备执行根据权利要求ι- ο中任一项所述的方法。
全文摘要
描述了用于语义缩放的编程接口。在一种或更多种实现中,描述了可以由用户用来导航到感兴趣内容的技术。这些技术也可以包括各种不同的特征,诸如以支持语义置换以及“放大”和“缩小”。这些技术也可以包括各种不同的输入特性,诸如支持手势、光标控制装置和键盘输入。也支持在具体实施方式
和附图中进一步描述的各种其它特性。
文档编号G06F3/0488GK103049254SQ201210331670
公开日2013年4月17日 申请日期2012年9月10日 优先权日2011年9月9日
发明者P.J.奎亚特科夫斯基, T.B.皮塔皮利, J.S.迈尔斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1