CN103049254A - 用于语义缩放的编程接口 - Google Patents

用于语义缩放的编程接口 Download PDF

Info

Publication number
CN103049254A
CN103049254A CN2012103316702A CN201210331670A CN103049254A CN 103049254 A CN103049254 A CN 103049254A CN 2012103316702 A CN2012103316702 A CN 2012103316702A CN 201210331670 A CN201210331670 A CN 201210331670A CN 103049254 A CN103049254 A CN 103049254A
Authority
CN
China
Prior art keywords
semantic
view
divergent
convergent
user
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.)
Granted
Application number
CN2012103316702A
Other languages
English (en)
Other versions
CN103049254B (zh
Inventor
P.J.奎亚特科夫斯基
T.B.皮塔皮利
J.S.迈尔斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN103049254A publication Critical patent/CN103049254A/zh
Application granted granted Critical
Publication of CN103049254B publication Critical patent/CN103049254B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction 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/0488Interaction 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/04883Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation

Abstract

描述了用于语义缩放的编程接口。在一种或更多种实现中,描述了可以由用户用来导航到感兴趣内容的技术。这些技术也可以包括各种不同的特征,诸如以支持语义置换以及“放大”和“缩小”。这些技术也可以包括各种不同的输入特性,诸如支持手势、光标控制装置和键盘输入。也支持在具体实施方式和附图中进一步描述的各种其它特性。

Description

用于语义缩放的编程接口
背景技术
用户可以访问日益多样的内容。另外,用户可用的内容数量不断增加。例如,用户在工作时可以访问各种各样不同的文档,在家时可以访问许多歌曲,在移动电话上可以存储各种各样的照片,等等。
然而,当面对即使临时用户在通常的一天中也可能访问的大量内容时,计算设备用于在该内容中导航的传统技术可能变得不堪重负。因此,用户可能难以定位感兴趣的内容,这会导致用户受挫并且阻碍用户对计算设备的感知和使用。
发明内容
描述了语义缩放技术。在一种或更多种实现中,描述了可以由用户用来在感兴趣的内容中导航的技术。这些技术也可以包括各种不同的特性,诸如以支持语义置换(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而放置并且向左移动(由箭头所示)。因此,用户的手110的手指和随后移动的检测可以由输入/输出模块104辨别为用于按照移动方向在内容表示中导航的“平扫(pan)”手势。在图示实例中,这些表示配置为表示计算设备102的文件系统中的内容项目的贴块(tile)。这些项目可以本地地存储在计算设备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%快照点。
在另一示例中,用户可以提供用于缩小的输入并且缩小百分比小于高端阈值百分比,此后用户可以停止输入。作为响应,语义缩放模块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中所示。在第二阶段处,显示字母“A”、“B”和“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个群组
○26个拉丁字母表字母
○1个数字群组
○1个符号群组
然而,其它语言使用不同的字母表,并且有时将字母收集起来,这会使得更难以识别给定字的首字母。因此,语义缩放模块114可以采用各种技术来处理这些不同的字母表。
诸如中文、日语和韩语之类的东亚语言对于第一字母分组可能是有问题的。首先,这些语言中的各语言都利用中文表意(汉语)字符,该中文表意字符包括数千个单独字符。例如日语的识字说话者熟悉至少两千个单独字符,并且目对于中文的说话者来说该数可能更大。这意味着给定一个项目列表,存在很高的概率每个字可能以不同的字符开始,从而采用第一个字符的实现可能实际上为列表中的每一条目都创建一个新的群组。此外,如果不考虑统一码代理对(Unicode surrogate pair)并且单独使用第一个WCHAR,则可能存在如下情况:其中分组字母将分解到无意义的方形盒。
在另一示例中,韩语,尽管偶尔使用汉语字符,主要使用本土的韩语脚本。尽管它是音标字母,但一万一千以上的韩语统一码字符中的每个字符可以表示两个至五个字母的整个音节,称为“jamo”。东亚排序方法(除了日语XJIS之外)可以采用将汉字/韩语字符分组成19-214个群组(基于音节、词根或笔划数)的技术,使得对东亚字母表的用户有直观意义。
此外,东亚语言通常确保“全宽(full width)”拉丁字符,其为方形而不是矩形,以与方形的中文/日语/韩语字符对齐,例如:
Figure 397915DEST_PATH_IMAGE001
因此,除非执行宽度归一化,否则半宽“A”群组可以紧跟全宽“A”群组。然而,用户通常将它们视为相同的字母,所以它对于这些用户而言将看上去像错误一样。这同样适用于两个日语假名字母(平假名和片假名),其排序在一起并且将被归一化以避免显示差群组。
附加地,使用基本的“拾取首字母”的实现对于许多欧洲语言也会给出不准确的结果。例如,匈牙利语字母表包括以下44个字母:
Figure 315055DEST_PATH_IMAGE002
从语言上讲,这些字母中的每个字母都是唯一排序元素。因此,将字母“D”、“Dz”和“Dzs”组合到同一组中可能看上去是错误的并且对于通常的匈牙利语用户而言是不直观的。在一些更极端的情况中,存在一些藏语“单字母”,其包括多于8个的WCHAR。具有“多字符”字母的其它语言包括:高棉语、科西嘉语、布列塔尼语、阿劳干 (Mapudungun)语、索布语、毛利语、维吾尔语、阿尔巴尼亚语、克罗地亚语、塞尔维亚语、波斯尼亚语、捷克语、丹麦语、格陵兰语、匈牙利语、斯洛伐克语、西班牙语(传统的)、威尔士语、马耳他语、越南语等。
在另一示例中,瑞典语字母表包括以下字母:
Figure 281743DEST_PATH_IMAGE003
注意,“A”是与“Å”和“Ä”明显不同的字母,并且后者两个字母在字母表中在“Z”之后。而对于英语而言,将“Ä”视为“A”的变音符号被移除,因为对于英语一般不期望两个群组。然而,如果相同逻辑应用于瑞典语,则要么复制的“A”组定位在“Z”之后要么该语言被不正确地排序。类似的情形可能在将特定重音字符处理为不同字母的相当少的其它语言中碰到,包括波兰语、匈牙利语、丹麦语、挪威语等。
语义缩放模块114可以显露各种API以供排序中使用。例如,可以显露字母表和首字母API,使得开发者可以决定语义缩放模块114如何寻址项目。
语义缩放模块114可以实现为例如从操作系统中的unisort.txt文件生成字母表表格,使得可以利用这些表格来提供字母表以及分组服务。例如可以利用该特性解析unisort.txt文件并产生语言上一致的表格。这可以涉及针对参考数据(例如外部源)验证默认输出以及创建当标准排序并非用户所期望时的特设例外情况。
语义缩放模块114可以包括字母表API,这可以用于基于地区(locale)/排序来返回被认为是字母表的结果,例如,在该地区的人通常将在词典、电话本等中看到的标题。如果针对给定字母存在多于一个的表示,则语义缩放模块114可以使用被辨别为最常用的一个表示。以下是用于代表性语言的一些示例:
●示例(fr,en):A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
●示例(sp):A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z
●示例(hn):A Á B C Cs D Dz Dzs E É F G Gy H I Í J K L Ly M N Ny O Ó Ö Ő P (Q) R S Sz T Ty U Ú Ü Ű V (W) (X) (Y) Z Zs
●示例(he):
Figure 676953DEST_PATH_IMAGE004
●示例(ar):
Figure 429008DEST_PATH_IMAGE005
对于东亚语言,语义缩放模块114可以返回上述群组的列表(例如同一表格可以驱动两种功能),但日语包括假名群组以及以下:
●示例(jp):A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Figure 251470DEST_PATH_IMAGE006
Figure 518504DEST_PATH_IMAGE007
在一种或更多种实现中,语义缩放模块114可以包括在每个字母表中的拉丁字母表(该每个字母表包括非拉丁字母表),以便提供用于通常使用拉丁脚本的文件名称的方案。
一些语言认为两个字母有很大不同但把它们排序在一起。在这种情况下,语义缩放模块114可以与用户通信:这两个字母在一起使用复合显示字母,例如针对俄语的“Е, Ё”。针对被排序现代用法的字母之间的早期且不常见的字母,语义缩放模块可以将这些字母与前一字母分组在一起。
对于类似拉丁字母的符号,语义缩放模块114可以根据拉丁字母来对待这些符号。语义缩放模块114例如可以采用“与前面的分组在一起”语义,例如,以将TM分组在“T”下。
语义缩放模块114可以采用映射功能来生成项目的视图。例如,语义缩放模块114可以将字符归一化为大写字母,重音(例如,如果语言不将特别重音的字母看做不同的字母)、宽度(例如将全宽转换成半宽的拉丁)以及假名类型(例如将日语的片假名转换成平假名)。
对于将字母群组看作是单个字母的语言(例如匈牙利语“dzs”),语义缩放模块114可以通过API将这些返回为“首字母群组”。这些可以经由每地区(locale)覆盖表格来处理,例如以检查字符串是否将排序在该字母的“范围”内。
对于中文/日语而言,语义缩放模块114可以基于排序返回中文字符的逻辑分组。例如,笔划计数排序返回针对每个笔划数的群组,部首排序返回针对中文字符语义成分的群组,音节排序按照音节读法的首字母返回,等等。同样,也可以使用每地区覆盖表格。在其它排序(例如非EA+日语XJIS,其不具有中文字符的有意义的排序)中,单个“漢”(Han)群组可以用于每个中文字符。对于韩语而言,语义缩放模块114可以返回针对韩语音节中的初始Jamo字母的群组。因而,语义缩放模块114可以生成与用于地区的本地语言中的字符串的“字母表功能”严密对准的字母。
首字母分组
应用可以被配置用于支持语义缩放模块114的使用。例如,应用106可以作为包括清单的封装体的一部分来安装,该清单包括由应用106的开发者指定的能力。可以指定的一种这样的功能性包括音节名称属性。音节名称属性可以用来指明要被用于针对项目列表产生群组和群组识别的音节语言。因而,如果音节名称属性针对应用存在,则其首字母将用于排序和分组。如果不存在,则语义缩放模块114可以落回在显示名称的首字母上,例如、对于第三方的合法应用。
对于如文件名称和第三方合法应用的非准确数据,可以将用于提取局部化字符串的第一字母的通用方案应用于大多数的非东亚语言。该方案涉及如下所述将第一个可视象形文字归一化并剥离变音符号(添加到字母的辅助符号)。
对于英语和大多数其他语言,可以将第一个可视象形文字归一化如下:
●大写字母;
●变音符号(是否关键字将其视为本地区的变音符号或者唯一字母);
●宽度(半宽);以及
●假名类型(平假名)。
可以采用各种不同技术来剥离变音符号。例如,第一个这样的方案可以涉及以下内容:
●生成排序关键字;
●查看是否应将变音符号视为变音符号(例如英语中的“Å”)还是字母(例如瑞典语中的“Å”——其排序在Z之后);以及
●转换成FormC(格式C)以组合码点,
○转换成FormD以将它们分开。
第二个这样的方案可以涉及以下内容:
●跳过空格和非象形符号;
●在象形符号上使用SHCharNextW到下一字符边界(见附录);
●在第一象形符号上生成排序关键字;
●察看LCMapString以确定其是否为变音符号(观察排序权重);
●归一化到FormD(NormalizeString归一化字符串);
●使用GetStringType(获得字符串类型)执行第二遍以去除所有变音符号:C3_非空格 | C3_变音符号;以及
●使用LCMapString去除大小写、宽度和假名类型。
语义缩放模块114也可以利用附加的方案,例如,针对中文和韩语中的非准确数据的首字母分组。例如,可以针对特定地区和/或排序关键字范围应用分组字母“覆盖”表格。这些地区可以包括中文(例如简体和繁体)以及韩语。其也可以包括类似匈牙利语的具有特殊双字母排序的语言,然而这些语言可以使用针对该语言的覆盖表格中的这些例外。
例如,覆盖表格可以用于提供针对以下内容的分组:
●第一个拼音(简体中文);
●第一个中文拼音字母(繁体中文——台湾);
●部首名称/笔划数(繁体中文——香港);
●第一个韩文(韩语);以及
●具有双字母分组的类似匈牙利语的语言(例如,将“ch”视为单个字母)。
对于中文而言,语义缩放模块114可以按照简体中文的第一个拼音字母进行分组,以便转换成拼音并且使用排序关键字的基于表的查找来识别第一个拼音字符。拼音是在语音上用拉丁字母表来呈现中文象形文字的系统。对于繁体中文(例如台湾),语义缩放模块114可以针对部首/笔划数的分组通过转换成中文拼音字母来通过第一个中文拼音字母分组,并使用基于笔划关键字表的查找来识别第一个中文拼音字母字符。中文拼音字母为繁体中文拼音音节表提供通用名称(例如,类似ABC)。部首是用于中文字符的分类,例如可以用于中文词典中的节头。对于繁体中文(例如香港),排序关键字的基于表的查找可以用于识别笔划字符。
对于韩语而言,语义缩放模块114可以将韩语文件名称在语音上排序为韩语字母表,因为单个字符使用两个至五个字母表示。例如,语义缩放模块114可以通过使用基于排序关键字表的查找缩减到第一个jamo字母(例如,19个初始辅音等于19个群组)以识别jamo群组。jamo指代在韩文中使用的一组辅音和元音,其为用于书写韩语的语音字母表。
在日语的情况中,文件名称排序在传统技术中是一种受挫的体验。类似于中文和韩语,日语文件被预定为按照发音排序。然而,在不知道正确发音的情况下,日语文件名称中出现日本汉字可能使得排序困难。附加地,日本汉字可能具有多于一个的发音。为了解决该问题,语义缩放模块114可以使用经由IME对每个文件名称进行逆转换的技术以获取语音名称,然后可以使用该语音名称来对文件进行排序和分组。
对于日语,可以将文件放置到三个群组中并且通过语义缩放模块排序:
●拉丁——按照正确的顺序分组在一起;
●假名——按照正确的顺序分组在一起;以及
●日本汉字——按照XJIS顺序分组在一起(从用户的角度来看有效地随机化)。
因而,语义缩放模块114可以采用这些技术来为内容项目提供直观的标识符和分组。
方向性提示
为了向用户提供方向性提示,语义缩放模块可以采用各种不同的动画。例如,当用户已经处于缩小视图中并且试图“进一步缩小”时,语义缩放模块114会输出向下反弹(under-bounce)动画,其中该反弹是视图的按比例缩小。在另一示例中,当用户已经处于放大视图中并且试图进一步放大时,可以输出向上反弹(over-bounce)动画,其中该反弹是视图的按比例放大。
此外,语义缩放模块114可以采用一个或更多个动画来指示到达内容的“末尾”,诸如反弹动画。在一种或更多种实现中,该动画不限于内容的“末尾”,而是可以在内容显示中的不同的导航点指定。以此方式,语义缩放模块114可以对应用106显露通用设计以使得该功能性可用,并且应用106“知晓”如何实现该功能性。
用于可语义缩放控制的编程接口
语义缩放(Semantic Zoom)可以允许有效导航长列表。然而,就其本质而言,语义缩放涉及“放大”视图和其“缩小”视图之间的非几何映射(也称为“语义”)。因此,“通用”实现可能并不完全适合每种实例,因为可能涉及领域知识来确定如何将一个视图中的项目映射到另一视图中的项目以及如何对准两个对应项目的视觉表示以在缩放期间将它们的关系传送给用户。
因此,在本部分中描述如下接口,该接口包括可由控制定义的多个不同方法,以允许作为语义缩放控制的子视图而被语义缩放模块114使用。这些方法使得语义缩放模块114能够确定允许控制平扫所沿着的一个或更多个轴,当缩放正在进行中时通知控制,以及允许视图在从一个缩放级别切换到另一个缩放级别时适当地对准它们自己。
该接口可以被配置用于利用项目的边界矩形作为用于描述项目位置的共同协议,例如语义缩放模块114可以在坐标系之间变换这些矩形。类似地,项目的概念可以是抽象的并且通过控制解译。应用也可以将项目的表示变换为从一个控制传递到另一个控制,允许更宽范围的控制被一起用作“放大”视图和“缩小”视图。
在一种或更多种实现中,控制将“可缩放视图”接口实现为可语义缩放。这些控制可以在动态型语言(例如动态型语言)中按照称为“可缩放视图”的单个公共属性形式实现,而没有接口的形式概念。可以对具有附接到它的若干方法的对象评估该属性。这些方法通常将被看做“接口方法”,并且在诸如C++或C#的静态型语言中,这些方法将是“IZoomableView”接口的直接成员,该“IZoomableView”接口将不实现公共“可缩放视图”属性。
在以下的讨论中,“源”控制是当缩放启动时当前可视的控制,而“目标”控制是另一控制(如果用户取消缩放,则缩放可以最终以可视的源控制结束)。这些方法如下使用类似C#的伪代码注释。
getPanAxis()
当语义缩放初始化时在两种控制上可以都调用该方法并且每当控制的轴改变时也可以调用该方法。该方法返回“水平”、“垂直”、“垂直和水平二者”或“既不是垂直也不是水平”,这可以配置为动态型语言中的字符串、另一语言中枚举类型的成员等。
语义缩放模块114可以将该信息用于各种目的。例如,如果两种控制无法沿着给定轴平扫,则语义缩放模块114可以通过将放缩变换中心约束为沿着该轴居中来“锁定”该轴。如果将两种控制限制为例如水平平扫,则放缩中心的Y坐标可以设定在视区(viewport)底部和顶部之间的中部。在另一示例中,语义缩放模块114可以允许在缩放操控期间受限的平扫,但将其限制到由两种控制支持的轴。这可以用来限制将由每种子控制预先呈现的内容量。因而,该方法可以称为“configureForZoom(配置用于缩放)”并且在下面进一步进行描述。
void configureForZoom(bool isZoomedOut, bool isCurrentView, function triggerZoom(), Number prefetchedPages)
如前面那样,当语义缩放初始化时在两种控制上都可以调用该方法并且每当控制的轴改变时也可以调用该方法。这为子控制提供当实现缩放行为时可以使用的信息。以下是该方法的特征中的一些特征:
- 可以使用isZoomedOut来告知子控制其为两种视图中的哪种视图;
- 可以使用isCurrentView来告知子控制其初始是否为可视视图;
- triggerZoom是子控制可以调用来切换到另一视图的回调函数——当其不是当前可视视图时调用该函数不起作用;以及
- prefetchedPages告诉控制在缩放期间有多少离屏内容需要它呈现。
关于最后的参数,“放大”控制可以可视地在“缩小”转变期间收缩,揭示比正常交互期间可视的内容更多的内容。当用户通过尝试从“缩小”视图甚至进一步缩小而引起“反弹”动画时,甚至“缩小”视图也可以揭示比正常更多的内容。语义缩放模块114可以计算将由每种控制准备的不同内容量,以促进计算设备102的资源的有效使用。
void setCurrentItem(Number x, Number y)
可以在缩放开始时在源控制上调用该方法。用户可以使语义缩放模块114使用各种输入设备来在视图之间转变,该各种输入设备包括先前描述的键盘、鼠标和触摸。在后两种情况中,鼠标光标或触摸点的屏上坐标确定将从哪个项目进行“缩放”,例如显示装置108上的位置。由于键盘操作可能依赖于预先存在的“当前项目”,输入机制可以通过使得依赖位置的项目为第一组当前项目并且然后请求关于“当前项目”的信息(其是预先存在的或者在一个实例前刚刚设定)来统一化。
void beginZoom()
当可视缩放转变将要开始时在两种控制上可以调用该方法。这通知控制将要开始缩放转变。语义缩放模块114实现的控制可以被配置为在放缩期间隐藏其UI的部分(例如滚动条)并且确保即使当按比例放缩控制时也呈现足够的内容来填充视区。如前面所描述的那样,可以使用configureForZoom的prefetchedPages参数来通知控制期望多少。
Promise<{ item: AnyType, position: Rectangle }> getCurrentItem()
可以在beginZoom之后立即在源控制上调用该方法。作为响应,关于当前项目可以返回两块信息。这些包括其抽象描述(例如在动态型语言中这可以是各种类型的变量)以及其边界矩形(在视区坐标中)。在诸如C++或C#的静态型语言中,可以返回结构体或类。在动态型语言中,返回具有命名为“项目”和“位置”的属性的对象。注意,实际上返回的是针对这两块信息的“承诺”。这是动态型语言转换,而在其它语言中存在类似的转换。
Promise<{ x: Number, y: Number }> positionItem(AnyType item, Rectangle position)
一旦完成了在源控制上对getCurrentItem的调用以及一旦完成了返回的承诺,就可以在目标控制上调用该方法。项目和位置参数是从对getCurrentItem的调用返回的参数,尽管位置矩形被变换到目标控制的坐标空间。控制在不同放缩上呈现。该项目可以通过由应用提供的映射函数来变换,但默认其为从getCurrentItem返回的相同项目。
目标控制改变其视图以将与给定项目参数对应的“目标项目”与给定位置矩形对准。该控制可以按照各种方式对准,例如左对准两个项目,中心对准它们,等等。该控制也可以改变其滚动偏移以对准这些项目。在一些情况中,控制可能不能够精确地对准项目,例如在其中滚动到视图的末尾可能不足以适当地定位目标项目的实例中。
返回的x,y坐标可以配置作为指定控制与对准目标的距离的矢量,例如如果对准成功,则可以发送0,0的结果。如果该矢量为非零,则语义缩放模块114可以将整个目标控制平移该量以确保对准并且然后在适当时间如关于上述校正动画部分中描述的那样向后绘制。目标控制也可以将其“当前项目”设定为目标项目,例如从对getCurrentItem的调用返回的项目。
void endZoom(bool isCurrentView, bool setFocus)
在缩放转变的末尾处在两种控制上可以调用该方法。语义缩放模块114可以执行与beginZoom执行的内容相反的操作,例如再次显示正常UI,并且可以丢弃现在离屏的已呈现内容以保存存储器资源。可以使用方法“isCurrentView”来告知控制现在是否是可视视图,因为在缩放转变之后任一种结果都是可能的。方法“setFocus”告知控制是否要设定在其当前项目上的焦点。
void handlePointer(Number pointerID)
当听到指示器事件并且将指示器留给底层控制处理时语义缩放模块114可以调用该方法handlePointer。传递到该控制的参数为仍向下的指示器的指示器ID。一个ID传递通过handlePointer。
在一种或更多种实现中,该控制利用该指示器确定“要做什么”。在列表视图情况中,语义缩放模块114可以跟踪在“降落”时指示器接触在哪里。当“降落”在项目上时,语义缩放模块114不执行动作,因为响应于MSPointerDown事件,已经在触摸项目上调用“MsSetPointerCapture”。如果没有按下项目,则语义缩放模块114可以在列表视图的视区区域上调用MSSetPointerCapture以启动独立的操控。
可以由语义缩放模块遵循来实现该方法的指引可以包括以下内容:
●在视区区域上调用msSetPointerCapture以实现独立操控;以及
●在不具有溢出平等滚动设定的元素上调用msSetPointerCapture以执行对触摸事件的处理,而无需初始化独立操控。
示例性过程
以下讨论描述可以利用前述系统和设备实现的语义缩放技术。每个过程的各方面可以在硬件、固件或软件或其组合中实现。这些过程示出为指明由一个或更多个设备执行的操作的一组方框并且不一定限于所示的用于执行相应框的操作的顺序。在以下讨论的部分中将分别参照图1的环境100和图2至图9的实现200-900。
图12描绘了其中操作系统向应用显露语义缩放功能性的示例性实现中的过程1200。操作系统向计算设备的至少一个应用显露语义缩放功能性(方框1202)。例如,图1的语义缩放模块114可以实现为计算设备102的操作系统的一部分以向应用106显露该功能性。
由应用指明的内容被语义缩放功能性映射,以支持与缩放输入的至少一个阈值对应的语义置换,从而在用户界面中显示内容的不同表示(方框1204)。如前面所描述的那样,可以按照各种方式诸如手势、鼠标的使用、键盘快捷键等启动语义置换。可以使用语义置换来改变用户界面中内容的表示如何描述内容。该改变和描述可以按照如前所述各种方式实现。
图13描绘了其中利用阈值来触发语义置换的示例性实现中的过程1300。检测输入以缩放在用户界面中显示的内容表示的第一视图(方框1302)。如前所述,输入可以采用各种形式,诸如手势(例如扩展或夹捏手势)、鼠标输入(例如选择按键和移动滚动轮)、键盘输入等。
响应于确定输入还没有达到语义缩放阈值,改变在第一视图中显示内容表示所处的尺寸(方框1304)。例如可以使用输入来改变如在图2的第二阶段204和第三阶段206之间所示的缩放级别。
响应于确定输入已经达到语义缩放阈值,执行语义置换来将内容表示的第一视图替换为在用户界面中不同地描述内容的第二视图(方框1306)。继续前一示例,输入可以继续引起语义置换,该语义置换可以用来按照各种方式表示内容。以此方式,单个输入可以用于缩放和置换内容视图,其各种示例先前已经描述过。
图14描绘了其中使用基于操作的手势来支持语义缩放的示例性实现中的过程1400。将输入辨别为描述移动(方框1402)。计算设备102的显示装置108例如可以包括触摸屏功能性,用于检测用户的一个或更多个手110的手指的接近度,诸如包括电容性触摸屏、使用成像技术(IR传感器、深度感测相机)等。该功能性可以用于检测手指或其它项目的移动,诸如朝向彼此或远离彼此的移动。
从辨别的输入中识别缩放手势以使得执行操作从而使用户界面的显示缩放为跟随所辨别的输入(方框1404)。如前面关于上述“基于手势的操作”章节描述的那样,语义缩放模块114可以被配置用于采用包括语义缩放的基于操作的技术。在本示例中,该操作被配置用于随着接收输入而例如“实时地”跟随输入(例如用户的手110的手指的移动)。这可以实现为放大或缩小用户界面的显示,例如以查看计算设备102的文件系统中的内容表示。
从输入中识别语义置换手势以引起操作从而将用户界面中内容表示的第一视图替换为在用户界面中不同地描述内容的第二视图(方框1406)。如关于图2至图6所述的那样,在本实例中可以利用阈值来定义语义置换手势。继续前一示例,用于缩放用户界面的输入可以继续。一旦越过阈值,可以识别语义置换手势以使得利用另一视图替换用于缩放的视图。因而,本示例中的手势是基于操作的。也可以利用动画技术,其进一步的讨论可以在结合以下图中找到。
图15描绘了其中使用手势和动画来支持语义缩放的示例性实现中的过程1500。从被辨别为描述移动的输入中识别缩放手势(方框1502)。语义缩放模块114例如可以检测用于缩放手势的定义已经符合例如用户的手指移动定义距离。
响应于缩放手势的识别显示缩放动画,该缩放动画被配置用于缩放用户界面的显示(方框1504)。继续前一示例,可以识别夹捏或反向夹捏(即,扩展)手势。语义缩放模块114然后可以输出符合手势的动画。例如,语义缩放模块114可以针对不同快照点定义动画并且将动画输出为对应于这些点。
从被辨别为描述移动的输入中识别语义置换手势(方框1506)。同样继续前一示例,用户的手110的手指可以继续移动以便识别另一手势,诸如前面的用于夹捏或反向夹捏手势的语义置换手势。响应于语义置换手势的识别而显示语义置换动画,语义置换动画被配置用于将用户界面中内容表示的第一视图替换为用户界面中内容的第二视图(方框1308)。该语义置换可以按照早先描述的各种方式实现。此外,语义缩放模块114可以结合快照功能性以处理何时停止手势,例如从显示装置108移开用户的手110的手指。在不脱离其精神和范围的情况下也设想了各种其它示例。
图16描绘了其中计算矢量以平移可滚动项目列表并且使用校正动画来去除列表的平移的示例性实现中的过程1600。在显示装置上的用户界面中显示包括第一可滚动项目列表的第一视图(方框1602)。第一视图例如可以包括内容表示列表,包括用户的名称、计算设备102的文件系统中的文件等。
辨别输入以将第一视图替换为包括第二可滚动项目列表的第二视图,其中第二列表中的至少一个项目表示第一列表中的一组项目(方框1604)。输入例如可以是手势(例如夹捏或反向夹捏)、键盘输入、光标控制装置提供的输入等。
计算矢量以平移第二可滚动项目列表,使得第二列表中的至少一个项目与显示装置显示的第一列表中的该组项目对准(方框1606)。使用计算的矢量在显示装置上用第二视图替换所显示的第一视图,使得第二列表中的该至少一个项目与显示装置上显示第一列表中的该组项目的位置对准(方框1608)。如关于图7描述的那样,例如如果不平移,第二阶段704中所示的列表将使得在显示装置108的左边缘处显示对应群组的标识符(例如,“A”用于以“A”开始的名称),并且因而将不“对齐”。然而,可以计算矢量使得第一视图和第二视图中的项目对准,例如在关于“A”的该组项目的表示在第二阶段704中显示的位置和在关于名称“Arthur”在显示装置108上的位置处接收到的输入。
然后响应于确定已经停止输入的提供,在不使用计算的矢量的情况下显示第二视图(方框1610)。校正动画例如可以被配置用于去除矢量的作用并且如另外显示的那样平移列表,其示例在图7的第三阶段706处示出。在不脱离其精神和范围的情况下也设想了各种其它示例。
图17描绘了其中利用交叉淡化动画作为语义置换的一部分的示例性实现中的过程1700。将输入辨别为描述移动(方框1702)。如前面那样,可以辨别各种输入,诸如键盘、光标控制装置(例如鼠标)以及通过显示装置108的触摸屏功能性输入的手势。
从输入中识别语义置换手势以引起操作从而将用户界面中内容表示的第一视图替换为在用户界面中不同地描述内容的第二视图(方框1704)。语义置换可以涉及在各种不同的视图之间的改变,诸如涉及不同的布置、元数据、分组的表示等。
显示交叉淡化动画作为用以在第一视图和第二视图之间转变的操作的一部分,涉及将一起显示的第一视图和第二视图的不同量,该量至少部分地基于由输入所描述的移动(方框1706)。例如,该技术可以利用不透明度,使得两个视图可以“透过”彼此同时显示。在另一示例中,交叉淡化可以涉及将一个视图替换为另一视图,例如把一个视图移动进来代替另一个视图。
附加地,该量可以基于移动。例如,第二视图的不透明度可以随着移动量的增加而增加,其中第一视图的不透明度可以随着移动量的增加而减小。自然地,该示例也可以反向,使得用户可以控制在视图之间的导航。附加地,该显示可以实时地响应。
响应于确定已经停止输入的提供,显示第一视图或第二视图(方框1708)。例如用户可以从显示装置108去除接触。语义缩放模块114然后可以基于移动量诸如通过采用阈值来选择显示哪个视图。也设想了各种其它示例,诸如针对键盘和光标控制装置输入。
图18描绘了涉及用于语义缩放的编程接口的示例性实现中的过程1800。编程接口显露为具有一种或更多种方法,其可定义为将控制的使用实现为语义缩放中的多个视图之一(方框1802)。视图被配置用于在语义缩放中使用,该语义缩放包括语义置换操作以响应于用户输入在多个视图之间切换(方框1804)。
如前所述,接口可以包括各种不同的方法。对于动态型语言,可以将接口实现为针对其上具有该方法的对象评估的单个属性。如前所述那样也设想了其它实现。
如上所述可以实现各种不同的方法。第一个这样的示例包括平扫访问。例如,语义缩放模块114可以进行滚动的“接管操作”用于子控制。因而,语义缩放模块114可以确定子控制将使用何种自由度来执行这种滚动,子控制可以返回什么作为答复,诸如水平、垂直、二者或者没有任何一个。这可以由语义缩放模块114使用以确定两种控制(以及它们的对应视图)是否允许在相同方向上平扫。如果是,则语义缩放模块114可以支持平扫。如果否,则不支持平扫并且语义缩放模块114并不预先获取“离屏”的内容。
另一种这样的方法是“配置用于缩放”,其可以用于在确定两种控制是否在相同方向上平扫之后完成初始化。该方法可以用于通知每种控制其是 “放大”视图还是“缩小”视图。如果其为当前视图,则这是可以随时间保持的一种状态。
另一种这样的方法是“预先获取”。该方法可以用在其中两种控制被配置为在相同方向上平扫使得语义缩放模块114可以对它们执行平扫的实例中。预先获取的量可以被配置使得在用户平扫或缩放时可获得(呈现)内容以供使用,以避免察看到裁剪控制和其它不完整的项目。
下一示例涉及可以视为“设置”方法的方法,包括平扫访问、配置用于缩放和设定当前项目。如上所述,每当控制的轴改变时都可以调用平扫访问并且可以返回“水平”、“垂直”、“二者”或“没有任何一个”。可以使用配置用于缩放来利用实现缩放行为时可以使用的信息支持子控制。如名称所暗含的那样,设置当前项目被用来如上所述指定哪个项目是“当前的”。
可以在编程接口中显露的另一方法是获得当前项目。该方法可以被配置用于返回项目的不透明表示和该项目的边界矩形。
可以由接口支持的又一个方法是开始缩放。响应于对该方法的调用,控制可以隐藏缩放操作期间其UI“看上去不好”的一部分,例如滚动条。另一响应可以涉及呈现的扩张,例如以确保当按比例缩小时将显示的更大矩形继续填充语义缩放视区。
也支持末尾缩放,这涉及与开始缩放中出现的内容相反的内容,诸如执行裁剪和返回在开始缩放时移除的诸如滚动条之类的UI元素。这也可以支持被称为“Is Current View(是当前视图)”的布尔量,这可以用于通知控制该视图是否是当前可视的。
位置项目是可以涉及两种参数的方法。一个是项目的不透明表示,另一个是边界矩形。这些都和从称为“获得当前项目”的其他方法返回的项目的不透明表示和边界矩形有关。然而,这些可以被配置用于包括发生于这二者之上的变换。
例如,假设显示放大控制的视图并且当前视图是列表中可滚动项目列表中的第一项目。为了执行缩小转变,表示是来自对应于放大视图的控制的第一项目的请求,其响应是针对该项目的边界矩形。矩形然后可以投影到另一控制的坐标系中。为此,可以确定另一视图中的哪个边界矩形将与该边界矩形对准。然后控制可以决定如何准对矩形,例如左对准、中心对准、右对准等。如前所述也可以支持各种其它方法。
示例性系统和设备
图19图示了包括如参照图1所描述的计算设备102的示例性系统1900。示例性系统1900当在个人计算机(PC)、电视设备和/或移动设备上运行应用时实现用于无缝用户体验的无所不在的环境。服务和应用基本上的所有三种环境中类似地运行,以便当利用应用、玩视频游戏、看视频等的同时从一个设备转变到下一设备时具有共同的用户体验。
在示例性系统1900中,多个设备通过中央计算设备互连。中央计算设备可以在多个设备本地或者可以被定位成远离多个设备。在一种实施例中,中央计算设备可以是通过网络、因特网或其它数据通信链路连接到多个设备的一个或更多个服务器计算机的云。在一种实施例中,该互连架构使得跨多个设备递送功能性以向多个设备的用户提供共同和无缝的体验。多个设备中的每个设备可以具有不同的物理要求和能力,并且中央计算设备使用平台来实现向设备递送针对该设备定制的并且对于所有设备也是共同的体验。在一种实施例中,创建目标设备的类别并且对通用类别的设备定制体验。通过物理特征、使用类型或设备的其它公共特性可以定义设备的类别。
在各种实现中,计算设备102可以采取各种不同的配置,以供诸如计算机1902、移动设备1904和电视1906使用。这些配置中的每种配置包括可以具有通常不同的构造和能力的设备,并且因而计算设备102可以根据不同设备类别中的一个或更多个类别进行配置。例如,计算设备102可以实现为包括个人计算机、桌面型计算机、多屏计算机、膝上型计算机、上网本等的计算机1902设备类别。
计算设备102也可以实现为包括移动设备诸如移动电话、便携式音乐播放器、便携式游戏设备、平板电脑、多屏计算机等的移动设备1904类别。计算设备102也可以实现为包括在随意观看环境中具有或者连接到通常较大屏幕的设备的电视1906设备类别。这些设备包括电视、机顶盒、游戏机等。这里描述的技术可以由计算设备102的这些各种配置支持并且不限于这里描述的技术的特定示例。这通过在计算设备102上包括语义缩放模块114来图示,其实现也可以如下所述部分地(例如分布地)或者全部地“在云上”完成。
云1908包括和/或表示用于内容服务1912的平台1910。平台1910抽象云1908的硬件(例如服务器)和软件资源的底层功能性。内容服务1912可以包括当在远离该计算设备102的服务器上执行计算机处理时可以利用的应用和/或数据。内容服务1912可以作为在因特网上和/或通过诸如蜂窝网络或Wi-Fi网络之类的用户网络的服务提供。
平台1910可以抽象资源和功能以将计算设备102与其它计算设备连接。平台1910也可以用于抽象资源的扩展以提供对应扩展级别来满足经由平台1910实现的内容服务1912的需求。因此,在互连设备实施例中,这里描述的功能性的功能性实现可以分布在整个系统1900中。例如,该功能性可以部分地在计算设备102上以及经由抽象云1908的功能性的平台1910实现。
图20图示了可以实现为如参照图1至图11和图19描述的任何类型的计算设备以实现这里描述的技术实施例的示例性设备2000的各种组件。设备2000包括支持设备数据2004(例如接收到的数据、正在接收的数据、被调度用于广播的数据、数据的数据分组等)的有线和/或无线通信的通信装置2002。设备数据2004或其它设备内容可以包括设备的配置设置、存储在设备上的媒体内容和/或与设备用户相关联的信息。存储在设备2000上的媒体内容可以包括任何类型的音频、视频和/或图像数据。设备2000包括一种或更多种数据输入2006,经由该数据输入可以接收任何类型的数据、媒体内容和/或输入,诸如用户可选择的输入、消息、音乐、电视媒体内容、记录的视频内容和从任何内容和/或数据源接收到的任何其它类型的音频、视频和/或图像数据。
设备2000也包括通信接口2008,该通信接口可以实现为串行和/或并行接口、无线接口、任何类型的网络接口、调制解调器以及可以实现为任何其它类型的通信接口中的任何一个或更多个。通信接口2008提供在设备2000和通信网络之间的连接和/或通信链路,由此其它电子设备、计算设备和通信设备与设备2000交互数据。
设备2000包括一个或更多个处理器2010(例如任何微处理器、控制器等),其处理各种计算机可执行指令以控制设备2000的操作并实现这里描述的技术的实施例。备选地或附加地,设备2000可以利用固定逻辑电路系统、硬件或固件中的任何一个或组合来实现,其结合在2012被整体标识的处理和控制电路来实现。尽管未示出,但设备2000可以包括耦合设备内各种组件的系统总线或数据传输系统。系统总线可以包括诸如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用各种总线架构中的任意架构的处理器或本地总线的不同总线结构中的任何一个或组合。
设备2000也包括计算机可读介质2014,诸如一个或更多个存储器组件,其示例包括随机访问存储器(RAM)、非易失性存储器(例如只读存储器(ROM)、闪速存储器、EPROM、EEPROM等中的任何一个或更多个)和磁盘存储装置。磁盘存储装置可以实现为任何类型的磁或光学存储装置,诸如硬盘驱动、可记录和/或可重写压缩盘(CD)、任何类型的数字多功能盘(DVD)等。设备2000也可以包括海量存储介质装置2016。
计算机可读介质2014提供数据存储机制以存储设备数据2004以及各种设备应用2018和与设备2000的操作方面有关的任何其它类型的信息和/或数据。例如,操作系统2020可以作为具有计算机可读介质2014并且在处理器2010上实现的计算机应用来维护。设备应用2018可以包括设备管理器(例如控制应用、软件应用、信号处理和控制模块、特定设备本身的代码、用于特定设备的硬件抽象层等)。设备应用2018也包括用于实现这里描述的技术实施例的任何系统组件或模块。在本示例中,设备应用2018包括示出为软件模块和/或计算机应用的接口应用2022和输入/输出模块2024。输入/输出模块2024表示用于提供与被配置用于捕获输入的设备(诸如触摸屏、轨迹板、相机、麦克风等)的接口的软件。备选地或者附加地,接口应用2022以及输入/输出模块2024可以实现为硬件、软件、固件或其任意组合。附加地,输入/输出模块2024可以配置用于支持多个输入设备,诸如分别用于捕获视频输入和音频输入的单独设备。
设备2000也包括音频和/或视频输入-输出系统2026,其向音频系统2028提供音频数据并且/或者向显示系统2030提供视频数据。音频系统2028和/或显示系统2030可以包括处理、显示和/或以其它方式呈现音频、视频和图像数据的任何设备。可以经由RF(射频)链路、S视频链路、复合视频链路、组件视频链路、DVI(数字视频接口)、模拟音频连接或其它类似通信链路,将视频信号和音频信号从设备2000传送到音频设备和/或传送到显示设备。在一个实施例中,音频系统2028和/或显示系统2030被实现为设备2000的外部组件。备选地,音频系统2028和/或显示系统2030被实现为示例性设备2000的一体化组件。
结论
尽管已经用特定于结构特征和/或方法动作的语言描述了本发明,但将理解到的是,所附权利要求中定义的本发明不一定限于描述的特定特征或动作。相反,特定特征和动作是作为实现所请求保护的发明的示例性形式而公开的。

Claims (11)

1.一种由计算设备实现的方法,所述方法包括:
显露具有一个或更多个方法的编程接口,所述方法可定义为将控制的使用实现为语义缩放中的多个视图之一(1802);以及
配置视图以在语义缩放中使用,该语义缩放包括语义置换操作以响应于用户输入而在多个视图之间切换(1804)。
2.根据权利要求1所述的方法,其中多个视图的每一个包括项目的可滚动表示。
3.根据权利要求1所述的方法,其中所述方法中的至少一个被配置为确定一个或者更多个所述控制要进行平扫的轴。
4.根据权利要求1所述的方法,其中所述方法中的至少一个被配置用于当缩放正在进行时通知控制。
5.根据权利要求1所述的方法,其中所述方法中的至少一个被配置为将多个视图中的一个与另一个对准,以作为用所述另一个视图来替换所述一个视图的一部分。
6.根据权利要求1所述的方法,其中所述编程接口被配置为供动态型语言使用。
7.根据权利要求6所述的方法,其中供动态型语言使用的配置包括针对所述一个或者更多个方法被附加至的对象进行评估的公共属性。
8.根据权利要求1所述的方法,其中所述一个或者更多个方法是静态型语言中的接口的直接成员。
9.根据权利要求1所述的方法,其中所述语义置换被配置为由键盘命令、光标控制设备或者手势发起。
10.根据权利要求9所述的方法,其中所述手势是夹捏或者反向夹捏手势。
11.一个或更多包括计算机可执行指令的计算机可读存储介质,所述计算机可执行指令响应于被计算设备执行而导致所述计算设备执行根据权利要求1-10中任一项所述的方法。
CN201210331670.2A 2011-09-09 2012-09-10 用于语义缩放的编程接口 Expired - Fee Related CN103049254B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/228,876 US20130067390A1 (en) 2011-09-09 2011-09-09 Programming Interface for Semantic Zoom
US13/228,876 2011-09-09
US13/228876 2011-09-09

Publications (2)

Publication Number Publication Date
CN103049254A true CN103049254A (zh) 2013-04-17
CN103049254B CN103049254B (zh) 2016-08-17

Family

ID=47831002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210331670.2A Expired - Fee Related CN103049254B (zh) 2011-09-09 2012-09-10 用于语义缩放的编程接口

Country Status (11)

Country Link
US (1) US20130067390A1 (zh)
EP (1) EP2754021A4 (zh)
JP (1) JP6042892B2 (zh)
KR (1) KR20140074290A (zh)
CN (1) CN103049254B (zh)
AU (1) AU2011376310B2 (zh)
BR (1) BR112014005427A2 (zh)
CA (1) CA2847180A1 (zh)
MX (1) MX2014002781A (zh)
RU (1) RU2600543C2 (zh)
WO (1) WO2013036263A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110235093A (zh) * 2017-01-30 2019-09-13 微软技术许可有限责任公司 经由语义抽象的对铰链式设备的导航性辅助

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469381B2 (en) 2007-01-07 2008-12-23 Apple Inc. List scrolling and document translation, scaling, and rotation on a touch-screen display
US8225231B2 (en) 2005-08-30 2012-07-17 Microsoft Corporation Aggregation of PC settings
US20100107100A1 (en) 2008-10-23 2010-04-29 Schneekloth Jason S Mobile Device Style Abstraction
US8238876B2 (en) 2009-03-30 2012-08-07 Microsoft Corporation Notifications
US8175653B2 (en) 2009-03-30 2012-05-08 Microsoft Corporation Chromeless user interface
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US20120159383A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Customization of an immersive environment
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US9423951B2 (en) 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
US9383917B2 (en) 2011-03-28 2016-07-05 Microsoft Technology Licensing, Llc Predictive tiling
US8893033B2 (en) 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US8687023B2 (en) 2011-08-02 2014-04-01 Microsoft Corporation Cross-slide gesture to select and rearrange
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US8922575B2 (en) 2011-09-09 2014-12-30 Microsoft Corporation Tile cache
US10353566B2 (en) * 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
US9244802B2 (en) 2011-09-10 2016-01-26 Microsoft Technology Licensing, Llc Resource user interface
US8933952B2 (en) 2011-09-10 2015-01-13 Microsoft Corporation Pre-rendering new content for an application-selectable user interface
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
US9268848B2 (en) * 2011-11-02 2016-02-23 Microsoft Technology Licensing, Llc Semantic navigation through object collections
EP2592574B1 (en) * 2011-11-08 2020-03-18 BlackBerry Limited Improved block zoom on a mobile electronic device
US9223472B2 (en) 2011-12-22 2015-12-29 Microsoft Technology Licensing, Llc Closing applications
US10108737B2 (en) * 2012-01-25 2018-10-23 Microsoft Technology Licensing, Llc Presenting data driven forms
US9128605B2 (en) 2012-02-16 2015-09-08 Microsoft Technology Licensing, Llc Thumbnail-image selection of applications
US20140109002A1 (en) * 2012-10-15 2014-04-17 Square, Inc. Computer device user interface and method for displaying information
US10691230B2 (en) * 2012-12-29 2020-06-23 Apple Inc. Crown input for a wearable electronic device
US10185473B2 (en) * 2013-02-12 2019-01-22 Prezi, Inc. Adding new slides on a canvas in a zooming user interface
US20150007078A1 (en) * 2013-06-28 2015-01-01 Sap Ag Data Displays in a Tile-Based User Interface
US10545657B2 (en) 2013-09-03 2020-01-28 Apple Inc. User interface for manipulating user interface objects
US11068128B2 (en) 2013-09-03 2021-07-20 Apple Inc. User interface object manipulations in a user interface
EP3822759A1 (en) 2013-09-03 2021-05-19 Apple Inc. User interface for manipulating user interface objects
US10503388B2 (en) 2013-09-03 2019-12-10 Apple Inc. Crown input for a wearable electronic device
US9299176B2 (en) 2013-11-19 2016-03-29 Microsoft Technology Licensing, Llc Visualizing large graphs
CA2933689A1 (en) 2013-12-13 2015-06-18 AI Squared Techniques for programmatic magnification of visible content elements of markup language documents
KR102298602B1 (ko) 2014-04-04 2021-09-03 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 확장가능한 애플리케이션 표시
CN105359055A (zh) 2014-04-10 2016-02-24 微软技术许可有限责任公司 计算设备的滑盖
KR102107275B1 (ko) 2014-04-10 2020-05-06 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 컴퓨팅 디바이스에 대한 접이식 쉘 커버
US9939991B2 (en) * 2014-06-25 2018-04-10 Oracle International Corporation Tile visualizations for navigating hierarchical data on mobile devices
CN106462340B (zh) 2014-06-27 2019-09-13 苹果公司 尺寸减小的用户界面
US9430142B2 (en) * 2014-07-17 2016-08-30 Facebook, Inc. Touch-based gesture recognition and application navigation
US10007419B2 (en) 2014-07-17 2018-06-26 Facebook, Inc. Touch-based gesture recognition and application navigation
US10678412B2 (en) 2014-07-31 2020-06-09 Microsoft Technology Licensing, Llc Dynamic joint dividers for application windows
US10254942B2 (en) 2014-07-31 2019-04-09 Microsoft Technology Licensing, Llc Adaptive sizing and positioning of application windows
US10592080B2 (en) 2014-07-31 2020-03-17 Microsoft Technology Licensing, Llc Assisted presentation of application windows
US10073590B2 (en) 2014-09-02 2018-09-11 Apple Inc. Reduced size user interface
WO2016036416A1 (en) 2014-09-02 2016-03-10 Apple Inc. Button functionality
WO2016036509A1 (en) 2014-09-02 2016-03-10 Apple Inc. Electronic mail user interface
CN110072131A (zh) 2014-09-02 2019-07-30 苹果公司 音乐用户界面
US10642365B2 (en) 2014-09-09 2020-05-05 Microsoft Technology Licensing, Llc Parametric inertia and APIs
CN106662891B (zh) 2014-10-30 2019-10-11 微软技术许可有限责任公司 多配置输入设备
US10365807B2 (en) 2015-03-02 2019-07-30 Apple Inc. Control of system zoom magnification using a rotatable input mechanism
KR102426695B1 (ko) * 2015-10-20 2022-07-29 삼성전자주식회사 화면 출력 방법 및 이를 지원하는 전자 장치
DK179888B1 (en) 2018-09-11 2019-08-27 Apple Inc. CONTENT-BASED TACTICAL OUTPUTS
US11435830B2 (en) 2018-09-11 2022-09-06 Apple Inc. Content-based tactile outputs

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1845054A (zh) * 2005-04-08 2006-10-11 皮克塞(研究)有限公司 用于动态缩放和重新排列显示项的系统和方法
US20070182999A1 (en) * 2006-02-06 2007-08-09 Microsoft Corporation Photo browse and zoom
US20070192739A1 (en) * 2005-12-02 2007-08-16 Hillcrest Laboratories, Inc. Scene transitions in a zoomable user interface using a zoomable markup language
CN101578577A (zh) * 2007-01-07 2009-11-11 苹果公司 用于手势操作的应用编程接口
CN102144213A (zh) * 2008-08-29 2011-08-03 微软公司 可滚动区域多缩放比例查看

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2827612B2 (ja) * 1991-10-07 1998-11-25 富士通株式会社 タッチパネル装置およびタッチパネル装置におけるオブジェクトの表示方法。
SE519884C2 (sv) * 2001-02-02 2003-04-22 Scalado Ab Metod för zoomning och för att framställa en zoomningsbar bild
US7162080B2 (en) * 2001-02-23 2007-01-09 Zoran Corporation Graphic image re-encoding and distribution system and method
EP1620785A4 (en) * 2003-05-08 2011-09-07 Hillcrest Lab Inc CONTROL ARRANGEMENT OF A ZOOMABLE USER INTERFACE FOR ORGANIZING, SELECTING AND LAUNCHING MEDIA ENTITIES
US7181373B2 (en) * 2004-08-13 2007-02-20 Agilent Technologies, Inc. System and methods for navigating and visualizing multi-dimensional biological data
US7725837B2 (en) * 2005-03-31 2010-05-25 Microsoft Corporation Digital image browser
US7673255B2 (en) * 2005-04-22 2010-03-02 Microsoft Corporation Interface and system for manipulating thumbnails of live windows in a window manager
US20070208840A1 (en) * 2006-03-03 2007-09-06 Nortel Networks Limited Graphical user interface for network management
US7877707B2 (en) * 2007-01-06 2011-01-25 Apple Inc. Detecting and interpreting real-world and security gestures on touch and hover sensitive devices
US7992104B2 (en) * 2007-11-13 2011-08-02 Microsoft Corporation Viewing data
US20090327969A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Semantic zoom in a virtual three-dimensional graphical user interface
US8176438B2 (en) * 2008-09-26 2012-05-08 Microsoft Corporation Multi-modal interaction for a screen magnifier
US20100175029A1 (en) * 2009-01-06 2010-07-08 General Electric Company Context switching zooming user interface
US8669945B2 (en) * 2009-05-07 2014-03-11 Microsoft Corporation Changing of list views on mobile device
US20110087988A1 (en) * 2009-10-12 2011-04-14 Johnson Controls Technology Company Graphical control elements for building management systems
US8930841B2 (en) * 2010-02-15 2015-01-06 Motorola Mobility Llc Methods and apparatus for a user interface configured to display event information
US8957920B2 (en) * 2010-06-25 2015-02-17 Microsoft Corporation Alternative semantics for zoom operations in a zoomable scene

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1845054A (zh) * 2005-04-08 2006-10-11 皮克塞(研究)有限公司 用于动态缩放和重新排列显示项的系统和方法
US20070192739A1 (en) * 2005-12-02 2007-08-16 Hillcrest Laboratories, Inc. Scene transitions in a zoomable user interface using a zoomable markup language
US20070182999A1 (en) * 2006-02-06 2007-08-09 Microsoft Corporation Photo browse and zoom
CN101578577A (zh) * 2007-01-07 2009-11-11 苹果公司 用于手势操作的应用编程接口
CN102144213A (zh) * 2008-08-29 2011-08-03 微软公司 可滚动区域多缩放比例查看

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110235093A (zh) * 2017-01-30 2019-09-13 微软技术许可有限责任公司 经由语义抽象的对铰链式设备的导航性辅助
CN110235093B (zh) * 2017-01-30 2022-08-05 微软技术许可有限责任公司 经由语义抽象的对铰链式设备的导航性辅助

Also Published As

Publication number Publication date
US20130067390A1 (en) 2013-03-14
JP2014529136A (ja) 2014-10-30
CA2847180A1 (en) 2013-03-14
EP2754021A4 (en) 2015-06-10
AU2011376310A1 (en) 2014-03-20
RU2014108997A (ru) 2015-09-20
KR20140074290A (ko) 2014-06-17
RU2600543C2 (ru) 2016-10-20
JP6042892B2 (ja) 2016-12-14
CN103049254B (zh) 2016-08-17
AU2011376310B2 (en) 2017-05-11
MX2014002781A (es) 2014-06-05
WO2013036263A1 (en) 2013-03-14
BR112014005427A2 (pt) 2017-04-04
EP2754021A1 (en) 2014-07-16

Similar Documents

Publication Publication Date Title
CN102981728B (zh) 语义缩放
CN102999274B (zh) 语义缩放动画
CN103049254B (zh) 用于语义缩放的编程接口
CN102981735A (zh) 语义缩放手势
US9557909B2 (en) Semantic zoom linguistic helpers
US20150100881A1 (en) Device, method, and graphical user interface for navigating a list of identifiers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150625

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150625

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160817

Termination date: 20190910