CN109300181A - 用户界面和内容项的计算机生成显示组件的动画 - Google Patents
用户界面和内容项的计算机生成显示组件的动画 Download PDFInfo
- Publication number
- CN109300181A CN109300181A CN201710740232.4A CN201710740232A CN109300181A CN 109300181 A CN109300181 A CN 109300181A CN 201710740232 A CN201710740232 A CN 201710740232A CN 109300181 A CN109300181 A CN 109300181A
- Authority
- CN
- China
- Prior art keywords
- layer
- display
- animation
- layers
- display component
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2213/00—Indexing scheme for animation
- G06T2213/08—Animation software package
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供了用户界面和内容项的计算机生成的显示组件的动画。动画应用或引擎创建了各显示组件的图像(如,位图图像)并将这些图像放置在动画层。可为各层指定动画行为,从而当各层的性质变化时(如,所包含的对象在层上的移动)指示各层和相关联的显示组件图像如何动画显示或行为,以及,来改变各层上的性质从而触发动画(如,引起对象旋转的动画)。为了实现较高的帧速率,该动画应用可使用三个处理线程,包括用户界面(UI)线程、合成器线程、和渲染线程。通过利用用于定义显示行为功能和性质的声明性标记语言(诸如可扩展标记语言),显示行为可被优化并控制。
Description
本申请是2012年11月14日提交的申请号为201210455485.4的中国专利申请的分案申请。
技术领域
本发明涉及一种用户界面和内容项的计算机生成显示组件的动画。
背景技术
随着计算的出现,已经发展了用户界面用于允许用户与电子内容以及底层软件应用功能进行交互。随着计算设备和显示功能变得更为先进,用户期待图形显示器既能在功能上有效率且视觉上令人愉悦。例如,如果用户期望将电子对象(如,照片、图表、一段文本等)从显示屏幕上的一个位置移动至另一位置,用户期待对象的有效移动,且用户还将会期待对象的视觉上令人愉悦(或者甚至是有趣的)的移动。作为另一个示例,如果用户在用户界面中的各处之间导航,用户期待这些空间之间的流动。提供这样的图形显示功能需要丰富的处理和显示器动画能力。本发明正是对于这些和其他考虑事项而做出的。
发明内容
通过提供用户界面和内容项的计算机生成的显示组件的动画,本发明的各实施例解决了上述和其他问题。根据各实施例,用于动画显示图形用户界面的计算机生成的显示组件(如,按钮、控件、工具栏、搜索功能,等)、以及各内容项的显示组件(如,文本、图像、照片、图表,等)的动画应用(此处还被称为动画引擎)。
根据一个实施例,该动画应用创建了各显示组件的图像(如,位图图像)并将这些图像放置在动画层。可为各层指定动画行为,来指示当各层和相关联的显示组件图像的性质变化时,各层和相关联的显示组件图像如何动画显示或行为(如,当层的位置性质变化时,动画行为可被添加至该层来指定应该被用于移动该层的速度、持续时间、和加速度),还有,来改变各层上的性质来触发动画(如,引起对象旋转、振动、调整大小,等)。为了实现与显示组件移动或其他动画相关联的较高的帧速率,该动画应用可使用三个处理线程,包括用户界面(UI)线程、合成器线程、和渲染线程。根据一个实施例,通过利用声明性标记语言(诸如可扩展标记语言) 用于定义显示行为功能和性质,显示行为可被优化并易于控制。因此,对于所显示的对象,可实现各种功能上有效且视觉上令人愉悦的显示行为。
一个或多个实施例的细节在附图和以下描述中阐明。通过阅读下面的具体实施例并参考相关联的附图,其他特征和优点将变得显而易见。要理解的是下面的具体实施例仅仅是说明性的,而不是对所要求保护的发明的限制。
提供本发明内容以便以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
图1示出用户界面和内容项的计算机生成的显示组件的动画的***体系结构。
图2是示例性软件应用用户界面的简化框图,示出其中包含并管理应用功能和用户内容显示组件的多个显示框或窗口。
图3是示出与一个显示组件相对于另一个显示组件的移动相关联的动画的简化框图。
图4是示出动画合成树的简化框图,该合成树示出根显示层和一些相关联的父和子显示层之间的关系。
图5是示出与一个显示组件相对于另一个显示组件的移动相关联的动画的简化框图。
图6是示出与一个显示组件相对于另一个显示组件的移动相关联的动画的简化框图。
图7是被显示图像的简化框图,用于描述可被应用于该被显示图像的动画功能。
图8是被显示图像的简化框图,用于描述可被应用于该被显示图像的动画功能。
图9是被显示图像的简化框图,用于描述可被应用于该被显示图像的动画功能。
图10是被显示图像的简化框图,用于描述可被应用于该被显示图像的动画功能。
图11是多网格位图的简化框图,用于描述在显示对象的动画过程中的缩放功能。
图12是显示组件(或纹理)集的简化框图,其可包括可被独立显示的多个显示组件。
图13是虚拟显示组件或纹理的简化框图,包括取决于动画显示要求可见或不可见的一组小块。
图14是被显示图像的简化框图,用于描述可被应用于该被显示图像的动画功能。
图15A和15B是示出子显示组件或对象相对于父显示组件或对象的动画的简化框图。
图16是示出子显示组件或对象相对于父显示组件或对象的动画的简化框图。
图17是说明用户界面和内容项的计算机生成的显示组件的动画的方法。
图18是可用来实施本发明的各实施例的计算设备的简化框图。
图19A和19B是可用来实施本发明的各实施例的移动计算设备的简化框图。
图20是可在其中实施本发明的各实施例的分布式计算***的简化框图。
具体实施方式
如前简述,本发明的各实施例涉及计算机生成的用户界面和内容项的显示组件的动画。以下具体实施方式参考各个附图。只要可能,就在附图和以下描述中使用相同的附图标记来指示相同或相似的元件。尽管可能描述了本发明的实施例,但修改、改编、以及其他实现是可能的。例如,可对附图中所示的元素进行置换、添加、或修改,并且可通过对所公开的方法置换、重新排序、或添加阶段来修改本文中所描述的方法。因此,下文的详细描述不限制本发明,相反,本发明的合适范围由所附权利要求来限定。
根据各实施例,当图形用户界面或内容项的显示组件(此处也称为“纹理”)被动画显示(如,移动、旋转、调整大小、延展、等),期望的是提供平滑的且视觉上令人愉悦的功能。例如,如果使用文字处理或其他类似应用,用户可启动功能工具栏的实例用于访问一个或多个功能按钮或控件。根据各实施例提供的期望的动画可包括平滑地将工具栏滑动到位同时平滑地将用户内容(如,文档)移动到工具栏下,而不是突然地将工具栏显示在该内容上方。举另一个示例,如果用户从多功能应用的电子邮件功能变化到日历功能,期望的动画可包括邮件界面滑动出视野同时日历界面滑动入视野。
如下文详细描述地,根据各实施例,动画应用或引擎创建了各显示组件的图像(如,位图图像)并将这些图像放置在动画层上。可为各层指定动画行为,用于当各层的性质变化时(如,包含在层上的对象的移动)指示各层和相关联的显示组件图像如何动画显示或行为,以及,来改变各层上的性质从而触发动画(如,引起对象旋转的动画)。为了实现较高的帧速率,该动画应用可使用三个处理线程,包括用户界面(UI)线程、合成器线程、和渲染线程。通过利用用于定义显示行为功能和性质的声明性标记语言(诸如可扩展标记语言),显示行为可被优化并控制。
图1示出用户界面和内容项的计算机生成的显示组件的动画的***体系结构。***100包括具有计算机显示屏幕表面110的计算机显示屏幕105,该屏幕表面用于显示与用户内容和/或软件应用用户界面渲染相关联的一个或多个图形显示组件。根据各实施例,计算机显示屏幕105是与各种合适的计算设备(将在下文参考图18到20而描述)相关联的说明性计算机显示屏幕。
在显示表面110上显示示例性软件应用用户界面和示例性相关联的用户内容。用户界面115示例的是各种软件应用可用的用户界面和相关联的用户内容,各种软件应用例如,文字处理应用、电子数据表应用、幻灯片展示应用、电子邮件应用、笔记本应用、日历应用,等。即,用户界面115 示例的是可被显示在计算机可用的显示表面110上根据相关联的软件应用功能用于查看和使用的任何说明性图形显示组件。如图1中所示,用户界面115示例的是文字处理应用用户界面,其具有多个功能控件120、服务窗格125、和用户内容显示区域130。正如所应该理解的,所说明的用户界面 115仅是示例性的目的,且该界面并不对可根据此处描述的本发明的各实施例所显示并管理的图形显示组件的数量和类型加以限制。
动画引擎160示例的是使用基于行为的动画启用软件应用用户界面 (UI)(如,按钮、控件、搜索功能、帮助功能、菜单、工具栏等)和用户内容(如,文档、照片、图像、图表等)的动画的说明性的软件应用。动画引擎160启用显示层的创建,在该显示层上可被放置诸如代表各显示组件的位图之类的显示图像。此外,动画引擎160用于指定动画行为,当各显示层的性质变化时该动画行为指示各显示层应该如何动画显示,且该动画行为改变各层上的性质从而触发动画。
仍然参看图1,为了能以较高的动画帧速率启用平滑的动画,该动画引擎使用三个处理线程165、170、175。UI线程165是处理线程,使用该处理线程,各显示层被创建且显示图像(如,位图)被添加。此外,UI线程 165负责处理添加至各层的动画行为(如,对象移动、调整大小、对于其他对象移动的反应、等)以及改变各层上的性质从而调度动画。例如,对于文字处理应用,UI线程165可负责在显示层上画出文档,将鼠标指针放在该文档上,且然后设置鼠标上的性质来允许鼠标指针围绕该文档的移动。
合成器线程170是负责用于从UI线程接收显示层和性质变化的处理线程。这个合成器线程使得没有动画显示的所有层变平(flatten)为一层,并执行所要求的处理来动画显示这些各层(如,放置在文字处理文档上移动鼠标指针的数据)。一旦该合成器线程确定了被要求调度动画的所有信息,它将这个信息放入通信(此处也被称为“CompNode(计算节点)”),该通信被发送至渲染线程175。
渲染线程175从合成器线程170处接收通信,该通信包括要被动画显示的所有各层和有关如何动画显示这些层的信息。由于确定如何动画显示这些层的计算在合成器线程上被计算,通过确定这个信息,渲染线程未被阻塞,且渲染线程自由地以较高帧速率来动画显示。即,由于合成器线程所执行的处理,渲染线程被释放从而快速地向显示屏幕110画出显示组件,用于以更高的帧速率显示相关联的动画。
为了描述此处描述的动画功能,图2示出与所显示的文字处理文档相关联的示例性所显示的文字处理应用用户界面,其中所显示的用户界面组件的每一个包含多个显示组件。例如,用户界面115可以是说明性的文字处理文档。显示在计算机屏幕表面110上的每一个显示组件可被显示为单个显示对象或显示对象的集合。根据一个实施例,内容项可被显示在显示框或窗口中,其中一组显示组件可被组织从而提供软件应用功能和相关联的用户内容的期望显示。参看图2,用户界面115包括顶层显示框或窗口 280,且包括多个分或子显示框或窗口285、290、295。例如,软件应用功能按钮或控件的集合120可被显示在子显示框或窗口285上,用户内容130 可被显示在亚或子显示框或窗口290中,且与服务窗格125相关联的功能和内容(如,搜索功能、帮助功能、信息功能,等)可被显示在亚或子显示框或窗口295中。如应该理解的,图2中的示例性文字处理用户界面和相关联的用户数据是仅为了示例和说明性且并不是对于可根据本发明的各实施例被显示并管理的用户界面和相关联的用户数据的数量和类型的限制。
如上简述,为了如图2中所示生成、渲染、和动画显示显示组件(如,鼠标指针从功能按钮/控件框285到内容框290的移动的动画),动画引擎 160,经由处理线程165、170、175在各层上创建显示层、渲染(画出)可视显示组件(元素)、在要求的情况下将各层合成在一起、且动画显示各层用于提供所期望的动画。根据一个实施例,动画引擎160包括合成器应用 171,其用作合成器线程170的一部分,将来自各源的可视显示组件(纹理) 放在一起来创建可被动画显示的组合的场景。例如考虑图1、2中所示的功能按钮/控件栏120。每一个按钮或控件可位于独立的层中。UI线程创建所有独立的各层并将所有显示按钮(显示组件)放在各层上。然后UI线程将各层发送至合成器线程,其中合成器应用170将所有的层组装在一起成为场景,其代表了工具栏和相关联的按钮/控件120。
更特定地,场景是可被用户创建层主控机(下述)、显示层、显示组件 (纹理)和其他合成器应用对象的对象。每一个UI线程165具有一个场景,代表了与该线程相关联的合成器应用171的状态。该场景可提供使得发生在场景的线程上的所有动画起作用的功能。动画引擎160客户机(如,要求动画的应用)可为包括它们想要动画显示的每一个线程选择一个场景对象。如图2中所示,每一个UI线程可包括多个显示框或窗口280、285、290、 295。“整体场景”280可包括在线程上所管理的所有显示框或窗口。
此外,可使用场景用于批量化要被同时调度的动画,例如,显示在“***”列表中的两个项的动画。如上所述,可在给定层上设置动画性质用于使得该层动画显示。批量化动画的示例可包括在其中一个显示组件被移动至一个位置,且然后其他显示组件必须移动出该层或相应地响应的情况下,在各层上重新放置显示组件。为了完成这些示例性移动,显示组件的位置被设置且批量化动画允许对包含不同显示组件的所有这些不同各层的位置设置多个不同性质,从而所有各层可在同时被动画显示。还可使用该场景用于启用和停用场景中的所有动画和用于接收有关该场景中的动画的提醒。根据各实施例,动画可在场景级别(即,停用场景中的所有动画)、在层主控机级别(即,停用与层主控机相关联的所有动画)、以及以单独基础,被停用。
其中显示与软件应用功能相关联的显示组件(如,按钮或控件)或其中显示用户数据(如,数据、图像等)的每一个显示框或窗口280、285、 290、295,可经由管理组件(此处有时称为层主控机)来管理。根据各实施例,层主控机是接管包含在显示框或窗口280、285、290、285中的各显示组件的渲染的对象。层主控机还可创建根层(下述)。在场景中可存在多个层主控机。返回参看图2,根据各实施例,可为每一个显示框或窗口280、 285、290、295创建一个层主控机来启用动画引擎来引起在用户界面的每一个框中所有显示组件的渲染。为允许层主控机来管理每一个框或窗口,包括关闭、调整窗口大小、窗口渲染(绘制)、窗口可见性;对于所显示的组件或纹理的位置变换、和作用在框或窗口上的其他编辑功能,框/窗口和相关联的层主控机必须被在同一个线程上被创建。
根据各实施例,关于创建,层主控机可自动创建与层主控机的客户机区域(如,由层主控机管理的显示框或窗口)的位置和尺寸匹配(在根层的寿命内有效)的根层。层主控机提供方法来检索其相关联的根层。这允许动画引擎160添加纹理至根层或添加子层至根层。可使用子层来动画显示显示框架或窗口中的内容。显示框或窗口中创建的任何层将被裁减至这个显示框或窗口的边界。如果该层移动到显示框或窗口的边界之外,其将不可见。下文将给出裁减的附加讨论。
如此处所述,层或显示层是可被动画显示的合成树(下述)中的对象或节点。根据各实施例,显示组件或纹理被放置在动画的层上。即,显示组件是它们被放置在其上的层的性质,代表了将被渲染给显示屏幕的对象。在一些情况下,显示组件是位图形式,可被渲染给显示屏幕作为相关联的显示组件的代表。如图2中所示,例如,“打印”按钮可被显示为位图且可以是包含在文字处理应用用户界面的工具栏框285中的层的性质。因此,“打印”按钮可以是渲染在框285的根层的子层上的位图。
默认地,在各层没有显示组件或纹理时,各层可以是透明的。可使用透明的层(不具有所应用的显示组件)来管理其他各层。即,可使用透明层作为父层来容纳(hold)一个或多个子层(如,其上放置两个按钮层的透明层)。这允许对于父层的操作(如,父层的移动),来引起所包括的子层的动画。例如,容纳两个子按钮层的透明父层的移动允许同时移动两个子按钮层。举另一个示例,如果用户在文字处理文档中画出两个形状,这两个形状可被画在独立的子层上,这两个独立子层可依序被放在透明父层上。然后,父层的动画(如,移动)可一起移动这两个子层和相关联的形状。
如上所述,一旦层主控机和根层已经被创建,子层可被定义为可相关于其父层而被动画显示。动画引擎并没有对在场景中可被创建的层的数量提出限制。然后参看图3,考虑例如黑色圆圈320跨越灰色背景310的动画。对于图示于图3的顶部的圆圈/背景组合,为了动画显示圆圈从左到右移动,需要两层,包括圆圈320的一层和方形灰色背景310的一层。在这个情况下,灰色背景310可被画到根层,从而,其再次变成层主控机的大小。且然后,第二层可就是圆圈320的大小,具有画在其上的黑色圆圈的纹理。然后,通过将包含圆圈320的层重新放置,圆圈320表现为移动跨越灰色背景。根据各实施例,包含黑色圆圈320的层可具有动画性质,例如,指令层320跨越背景310的移动的速度、持续时间、和加速度。例如,可施加性质要求圆圈在200毫秒内从第一位置移动到第二位置,包括在移动过程中的加速。对于图示于图3底部的圆圈/背景组合330,该灰色背景可被画在根层上,该根层是在层主控机创建时被自动创建的。需要创建可在其上画出圆圈320的第二层。
合成树是单个层主控机中的各层的树,该树代表了该合成器将什么渲染在与该层主控机相关联的显示框或窗口中。在给定场景中可存在多个合成树,因为场景可包含多个层主控机。合成树中的层的位置代表了它将渲染给屏幕的次序,除非对于层另外指定了次序。用前序遍历绘出树。
根据各实施例,层被渲染给屏幕的排序(此处也被称为z-排序)指令 (dictate)了在父和子层之间渲染的放置和时序。例如,子层总是渲染在它们的父层的顶部,且同一个父层的具有较高指数(index)的子层将渲染在具有较低指数的子层的顶部。即,指数可被施加给子层来表示相对于同一父层的其他子层,它们被渲染给屏幕的排序。根据各实施例,各层可具有排序性质(如,z-排序),如果设置该性质的话,可基于其指数来重写 (override)该层的排序。如果同一父层的两个层被给予相同的z-排序,它们以指数来渲染,其中较低指数的子层被渲染在较高指数的子层之下。如果能透视(perspective),各层还可具有z-位置,表示一层相对于另一层的深度。Z-位置可重写具有相同父层的各子层的z-排序。
图4是示出动画合成树的简化框图,该合成树示出根显示层和一些相关联的父和子显示层之间的关系。树400表示将由合成器应用171渲染给屏幕的各层。根层410位于合成树的顶部,且可具有子层,但是不具有父层。根层410的子层415、420、425可包括一个或多个子层。在图4所示的情况下,层420具有两个子层430、435。当父层移动时,它们的子层将随之移动。子层,诸如子层430、435,可被添加至合成树中的任意层。在合成树中,各子层相对于父层放置和移动。如上所述,当各子层被添加至父层时,它们可接收从指数零(0)开始的指数,来指令它们相对于其他子层的渲染。如图4中所示,层A(415)、B(420)、和C(425)是根层410 的子层,且各自具有指数0、1、和2。因此,由于所施加的指数,层A、B、和C将被顺序地渲染。类似地,层D(430)和E(435)是父层B(420) 的子层,且将在父层B的渲染后立刻被渲染,并且渲染次序为首先是层D、跟着是层E。
上述的一个示例可包括如图2中所示的在显示框280中的功能按钮 120。根层可相关联于显示框280且可由层主控机管理。每一个按钮“文件 (file)”、“编辑(edit)”、“打印(print)”、和“格式(format)”可以是根层的子层,且可分别对于“文件”具有指数0、“编辑”具有指数1、“打印”具有指数2、且“格式”具有指数3。因此,当显示框280被渲染时,“文件”、“编辑”、“打印”、和“格式”按钮将根据它们各自指数按照顺序被渲染。
参看图5,考虑动画显示黑色圆圈320跨越灰色背景310的另一个示例。在这个示例中,灰色背景310可被放置在根层510上,且黑色圆圈320可被放置在根层的子层520上。然后,基于如上所述的放置排序和移动排序,黑色圆圈可被放置并相对于根层移动。根据各实施例,可将多个方法应用于各层,用于管理各层相对彼此的放置和移动。以下是可被应用于各层的多个方法的列表。如所应该了解的,以下示例性方法并不是可被发展并可被施加至各层用于放置、移动、添加、移除、和用于获取有关各层的信息的数量众多的方法的穷尽。
AddLayer(添加层)方法向从该层调用该方法的那层添加特定层作为子层。例如,向层B调用AddLayer,如图4中所示,将以指数2添加子层至B。RemoveLayer(移除层)方法将特定子层从调用子层的那一层移除。这个层将从合成树移除且删除。该方法提供了选项来将包含在所移除的层中的显示组件或纹理变平至其父层。InsertLayerAtIndex(以指数***层)方法以特定指数向调用该方法的那层***子层。例如,向层B调用InsertLayerAtIndex 1,如图4中所示,将以指数1添加子层至B,在层D和 E之间。层E的指数将变为2。InsertLayerAfter(在…后***层)方法在特定层后***层,或,若特定层不存在,则在开始处***层。InsertLayerBefore (在…前***层)方法在特定层前***层,或,若特定层不存在,则在末尾处***层。GetChildLayerCount(获得子层计数)方法返回层的子层数量。 GetLayer(获得层)方法返回位于特定指数的子层。GetParent(获得父层) 方法返回层的父层。GetLayerHost(获得层主控机)方法返回层的层主控机。
仍然参看图4,根据各实施例,在任何给定时刻,对于相关联的UI线程165而言,合成器的层树400的当前状态是未知的。所以,层树不可由合成器应用171代表。至层树的方法调用,如上所述,将最终受到合成器应用171的影响,除非对于层树的稍后的调用打断了它们。例如,如果方法调用重新调整层的大小,调用层可期待,它将最终重新调整为特定大小,除非另一个UI侧方法调用将其大小调整至不同尺寸、将它隐藏、移除它对于当前父层的关系、或者打断了这个命令。主张(maintain)整个层的树的所有权(ownership)的UI线程165在合成器应用171应该合成什么的方面具有权限,不过给定调用的完成次序可被改变或打断。根据各实施例,这允许对UI线程165不被阻塞以允许用户另一个位置点击或以其他方式与显示屏幕交互,即使动画正在播放。因此,通过打断这个状态,用户的点击或其他交互可在其他位置完成。在这样的情况下,当前运行的动画被覆盖且跟随新的性质值。
如此处所述,用户界面和用户内容组件(例如,按钮、文本框、文本项、图表、照片、图像等)的显示和动画,通过将显示组件或纹理放置在用于渲染在显示屏幕上的各层上来完成。如果没有包括显示组件的层被渲染至显示屏幕,则该层是透明的。没有显示组件或纹理的层可被用于归类、转换、和裁剪子层。
放在用于渲染的各层上的显示组件或纹理可以是多种形式和多种格式的。例如,显示组件可以是根据多个格式、纯色填充、或梯度创建和格式化的位图。梯度组件或纹理可以是线性或径向地填充的。相同的显示组件或纹理可被设置在多个不同层,且显示组件可被放大/缩小来配合层的大小。根据各实施例,动画引擎160可接收由不同应用创建且根据不同格式创建的显示组件或纹理,用于显示和动画。即,如果动画引擎从根据一个渲染技术操作的一个软件应用(如,电子表格应用)接收一个对象,并从第二个软件应用(如,文字处理应用)接收第二个对象,动画引擎可将这两个对象转换为动画引擎160所使用的渲染技术,用于分解在不同层上用于由动画引擎渲染。
现在参看图6,考虑其中黑色圆圈320跨越灰色背景310被移动的示例性动画。灰色背景310的纹理性质被设置在根层610上,且黑色圆圈320 的纹理性质被设置在子层620上。根据各实施例,显示组件或纹理不具有线程亲和性,这意味着显示组件可在一个UI线程160上被创建且可在另一个UI线程160上被使用。然而,根据一个实施例,显示组件不可同时被多个线程所使用。
现在参看图7-10,为指定显示组件如何延展至其上放置显示组件的层的边界,可采用显示组件或纹理延展模式。参看图7,“延展”模式的使用允许显示组件715垂直和水平均被延展来充满该层710。参看图8,“平铺 (tile)”模式允许显示组件815维持其大小,但是允许以平铺显示格式被复制来充满其层810。参看图9,“水平延展”模式允许显示组件915水平地延展且垂直地平铺来充满该层910。参看图10,“垂直延展”模式允许显示组件1015垂直地延展且水平地平铺来充满该层1010。如应该了解的,图 7-10中所示的延展模式仅为了示例目的,且并不是对于可被采用的其他延展模式(如,对角线延展,等)的限制。
根据各实施例,当向层添加显示组件时,该层将被自动地调整大小至该显示组件的大小,假设其仅在每一维的一侧上受限。如果层在任何一维中双向受限、或者如果显示组件类型并没有提供大小,这可被忽略。在这个情况下,显示组件将不被延展且会装配在这层的边界中。然而,如果这个层后来被重新调整大小,在延展模式应用于该层后,显示组件将延展以配合该层。
现在参看图11,根据各实施例,动画引擎160可采用九栅格位图配置来提供参看图7-10的在上文所描述的延展和移动模式。如栅格1110、1120、和1130中所示地设置九栅格边缘,当被调整大小时,允许单个显示组件(如,位图)的各部分被不同地比例缩放,从而允许如上所示的各种延展和移动。例如,参看栅格1120,当九栅格的边缘被设置时,各边角可完全不比例缩放,顶部和底部区域仅水平地比例缩放,左边和右边区域仅垂直地被比例缩放,且中间区域在水平和垂直均比例缩放。
根据各实施例,可结合九栅格边缘使用延展模式,其中被比例缩放的位图中仅是有些部分可受到影响。例如,具有圆形边角的用户界面上的按钮可被启用,其中按钮(显示对象)的边角不比例缩放,即使按钮的中间比例缩放了。因此,上述延展模式可结合图11中所示的九栅格边缘使用,来实现期望的显示结果。根据一个实施例,九栅格边缘的显示组件的默认状态全部被设为0,如栅格1110中所示,且其延展模式被设为“延展 (stretch)”,如上述图7中所示。
图12示出一起被分组在显示组件组或集中的显示组件或纹理的集合。如此处所述,对于给定的被显示的用户界面或内容项,可生成并显示多个独立的显示组件(此处也被称为纹理)1210、1220、1230、1240、1250。根据一个实施例,为了减少与独立显示组件或纹理的生成和显示相关联的时间的影响,一组显示组件或纹理可被组装在一起成为单个显示组件组或集1200。例如,返回参看图2,显示在示例性用户界面中的功能框中、窗口、或工具栏的每一个独立按钮或控件120,可被一起分组为单个显示组件集。
然后,根据各实施例,使用如图12中所示的显示组件或纹理集,允许动画引擎160的性能优化。例如,替代具有100个20X20位图,一个较大表面(集)可被创建,其包含所有的20x20位图。然后,动画引擎160可从该较大表面的不同部分渲染不同的显示组件。这样使用集1200,避免了独立的显示组件创建时间(如,多出1-20毫秒来完成)。如所应该了解的,不同的驱动器可具有不同的存储器分配策略,而有些具有最小的分配,意味着如果显示组件小于最小分配,图形显示器仍为给定显示组件分配最小量的显示器。因此,分配至给定集的所有显示组件将从一个较大集表面被渲染,而不是与每一个显示组件相关联的很多不同表面被渲染。
图13是虚拟显示组件或纹理的简化框图,包括取决于显示要求可见或不可见的一组小块。在很多情况下,一项应用可具有其大小大于视频卡所允许的纹理的最大尺寸的单个层。根据各实施例,如果显示组件或纹理非常大,且用户不需要看见整个显示组件,则没有必要渲染整个显示组件且使用所有所要求的存储器空间和处理资源。例如,如果用户将文字处理文档放大至500%放大倍数,以使用户仅能看到文档的小部分,则没有必要生成以及存储不在视野中的文档的部分的显示组件。如图13中所示,虚拟显示组件或纹理1300被生成,代表了整个显示组件(如,文档),不过其被分为多个小块1310、1320。图13中所示的小块仅是一个示例,且根据这个实施例,可使用很多不同的小块形状和布局。根据一个实施例,小块可形如正方形的小块。根据各实施例,动画引擎160命令客户机应用(如,文字处理应用)仅画出在可见区域1330中的那些小块。当在可视区域1330 外的小块开始进入视野(如,经由滚轮或缩放),动画引擎调用负责渲染的应用并要求附加小块的渲染。
如此处所述,为了动画显示给定显示组件,包括组件的放置、组件的移动、组件的调整大小等,通过改变在其上部署显示组件用于渲染的层的一个或多个动画性质完成。根据各实施例,可施加多个动画性质至给定显示层。可施加位置性质,从而显示组件和层位置受控于指定层如何相对其父层被放置的限制。旋转性质可被施加,其可指定二维显示和三维显示中的旋转。调整大小性质可被施加,有了这个性质,可指定限制来控制如何相对于层自身或相对其父层调整层的大小。当层的大小被改变时,基于其相对于所改变的父层的限制的它们的限制,其子层将重新调整大小。
比例缩放性质可被施加,其允许层从特定中心点被重新调整大小。对层比例缩放不同于对该层重新调整大小,因为子层限制将被忽略,使得该层与它们的父层同等地被比例缩放。可视性性质可被设置来将层渲染为可视或不可视。这不可影响不透明性。不透明性质可被设置为光被允许穿过层行进的程度。这个性质可被动画显示来创建淡化效果。纹理性质可允许经由交叉淡入淡出对于显示组件的改变。滚动性质可被设置来允许一层相对另一层的滚动。缩放性质可被设置来允许如此处参看图7-11和13所描述的缩放效果。位图帧性质可被设置在层上,且允许相关联的显示组件的动画。例如,空的沙漏或旋转圆圈可包括在给定处理步骤过程中在以环循环的多个帧。
在给顶层上设置性质后,可根据不同方法执行层的动画(如,移动、调整大小、改变,等)。根据第一种方法,可在层上设置动画类别,其指定了可被施加至层的动画事件的动画。即,当层被创建时,动画类别可被施加至该层,指定可被施加至该层上述的动画性质和当这些性质改变时所遵循的动画行为。如果层的动画性质被改变,则根据由该层的类别指定的动画行为,该层将被动画显示。根据实施例,动画类别、性质、以及如何动画显示这些性质的描述,是使用诸如可扩展标记语言(XML)之类的声明性标记语言定义的。
根据可选的动画方法,以并不是由层的性质所指定的方式来进行层的动画,随后返回层的原始状态。例如,如果期望的是临时改变对象的颜色来高亮该对象,该颜色可以是临时地变化,且然后根据施加至该层的性质,该层返回其原始状态。例如,可根据XML构建临时颜色变化的描述。动画引擎可使得基于XML的描述被渲染,接着是返回仍施加至该层的性质(如,返回该对象的原始颜色)。
在动画开始之前,定义了动画了的开始和结束点(也被称为“关键帧”)。根据一个实施例,关键帧经由XML被描述。关键帧为任何给定层指定了要被动画显示的有效层性质,以及应该如何动画显示这些性质。例如,关键帧可指定在每一个关键帧的性质的相对值、关键帧的时间、和应该被用于动画显示至关键帧所指定的相对性质值的时序功能或加速功能。考虑例如,层从点A移动至点B。根据这个示例,A是位于其初始性质状态,所以可不需要关键帧。对于位置B,关键帧可被添加,其可指定该层在400毫秒内移动至位置B。该关键帧还可指定时序曲线,其给出以给定加速度的移动。因此,这个性质执行将开始,根据所指定的加速度加速,并在400毫秒内达到性质的最终值(如,位置B)。
如上所述,可开发出多种动画类别,且经由诸如XML之类的声明标记语言描述。一旦开发了多种动画类别,它们可被存储在中央储存库或库中,且经常在一个或多个显示层中按需被再次使用。现在参看图14,描述了多个动画类别。然而,应该注意的是,以下动画类别的列表是仅为了说明目的且并不是可被发展并应用于层引起所期望的层的动画的各种其他动画类别的限制。
然后参看图14,动画类别可包括“OnShow(开启展示)”动画,该动画在层的可见性质被设为真时指定该层应该如何动画显示。这个类别可被施加至层1405和相关联的显示组件1410。当该层1405之后成为可见时,“OnShow”动画可被触发,使得层1405和相关联的显示组件410淡入视野。施加至层1405的动画类别还可包括“OnHide(开启隐藏)”动画,该动画在层的可见性质被设为假时指定该层应该如何动画显示。当层1405的可见性被设为假时,“OnHide”动画被触发,导致层1405和相关联的显示组件1410淡出施加至层1405的动画类别还可包括“OnMove(开启移动)”动画,该动画在层的位置性质变化时指定该层应该如何动画显示。如果层1405的位置变化,“OnMove”动画可被触发,使得该层动画显示至其新的位置。如果施加至层1405的动画类别包含“OnResize(开启重新调整大小)”动画,当层的大小被改变时,这个动画指定层应该如何动画显示,然后当该层的大小性质被如下变化时,该层将遵循所指定的动画。当该层根据其大小限制中的变化被重新调整大小时,且一旦重新调整了层的大小,基于相对于遵循“OnResize”动画的父层的子层的被施加的限制,其子层可被重新调整大小。
如果施加至层1405的动画类别包含“OnOpacityChanged(开启变化透明度)”动画,当层1405的透明度变化时,可在层1405和相关联的显示组件1410上触发这个动画。如果施加至层1405的动画类别包含“OnTextureChanged(开启变化纹理)”动画,当层的纹理变化时,该动画指定了将被交叉淡入淡出的动画,当纹理被更新时,该层可在纹理之间进行交叉淡入淡出。如果施加至层1405的动画类别包含“OnScale(调整比例)”动画,当层的比例被改变时,可触发这个动画。对层比例缩放不同于重新调整大小。比例缩放允许标识从其开始比例缩放的中间点,且忽略限制同等地调整所有子层的比例。
如果施加至层1405的动画类别包含“OnRotate(开启旋转)”动画,当层被选择时,可触发这个动画。“OnAlways(开启一直)”动画可被包括在该类别中,该动画被施加至层1405来指定循环动画。施加至“OnAlways”事件的动画将暂时地由其它层事件触发的动画所覆盖。通过在层上建立动画或通过从该层移除定义“OnAlways”动画的类别,可停止“OnAlways”动画。“OnScroll(开启滚动)”动画可被包括在类别中,其可被施加至作为滚动层被创建的层。与其他层性质类似,当做出改变时,事件被触发。例如,当层滚动至新的位置,“OnScroll”动画可被触发。“OnZoom(开启缩放)”动画可被包括在类别中,其可被施加至作为滚动层被创建的层1405。当层缩放至新的位置时,这个事件被触发。
根据各实施例,如果改变了当前被动画显示的层性质的值的新动画被调度,新动画将覆盖当前运行的动画。在这个情况下,该层将停止向着原始性质值的动画显示,且将变化为向着新的性质值的动画显示。覆盖动画确保动画引擎160响应于用户输入。例如,如果动画正在文档中运行,且用户选择功能键,诸如“打印”,这个文档显示组件将立即动画显示进入从属于相关联于所选择的“打印”按钮相关联的背景中。
图15A、15B、和16是示出子显示组件或对象相对于父显示组件或对象的动画的简化框图,其中例示了裁减。参看图15A,默认地,如果子层 1520移动至父层1510外部,它不会被裁减(即,即使超出父层边界,子层将被显示)。另一方面,如图15B中所示,在子层1520上可设置性质以使,如果子层移动到父层1510边界之外,对于子层的超出父层边界的部分,该子层部分将被裁减出视野。如图16中所示,垂直对齐的父层1610将裁减其子层1620。
如此处所述,动画是行为,基于其中当层性质变化时的应用至层的动画控制层的动画行为。如上所述,这些行为定义了可视显示组件(元素) 如何移动、旋转、调整大小、比例缩放、展示、隐藏、可见度变化、缩放、和滚动。例如,字处理应用实现的开发者可将动画行为分配给包含文本的可视元素。这些行为将定义文本如何移动和生长(grow)。在分配了动画行为后,如果文字处理应用通过移动或重新调整大小改变了文本,这将使得文本遵循新施加的动画行为来自动地动画显示。根据一个实施例,施加至显示层的动画行为是基于XML的。基于XML的动画行为定义了时序、动画、和类别。
图17是说明用于提供一个或多个图形显示组件的动画或与一个或多个图形显示组件相关联的动画的方法的流程图。该方法1700起始于开始操作 1705并继续至操作1710,此处动画引擎160的合成器应用171为用户界面 (UI)线程165创建场景。根据各实施例,合成器应用171将来自不同源的可视显示组件或元素(此处也被称为“纹理”)放在一起从而创建可被动画显示的组合的场景。每一个UI线程165具有一个场景,代表了在该线程上的合成器应用171的状态。可使用该场景来创建层主控机、层、纹理、和其他合成器应用对象。此外,该场景提供使得发生在场景的线程上的所有动画起作用的功能。
在操作1715,合成器应用171使用该场景来创建层主控机,接管在场景中渲染显示框或窗口。层主控机是负责渲染显示框或窗口并且创建根层的对象。在场景中可存在多个层主控机。
在操作1720,创建了被要求用于代表期望的用户界面组件或内容组件的多个层。即,创建了根层和被需要用于显示所期望的显示组件的很多的在该根层下的父层和子层。在操作1725,生成合成树,建立了所创建的各层之间的关系,包括将指数分配给每一层用于确定各层的动画排序。通过从应用层主控机中检索根层以及通过添加将被动画显示的层作为该根层的子层,建立了合成树。
在操作1730,显示组件,例如按钮、空间、文本项、照片、图像、图表等,在应用层上被画出。初始地,层是透明的且对于显示表面没有画出任何东西。当显示组件被添加至层时,该层的“纹理”性质被设置。根据一个实施例,显示组件被转换为位图,且位图被画至各应用层。在操作1735,基于施加至父层和子层的动画性质,相对于父层设置子层的位置。
在操作1740,动画类别,如上参看图14所述地,被设置在父层和子层上。添加动画类别至层,将动画相关联于层的变量的变化和可被动画显示的事件,诸如移动、大小变化等。在操作1745,层性质或变量被改变(如,要求层从点A到点B的移动的变量)。这个变化触发了相关联的事件(如,层的移动),且根据施加至各层的动画类别定义来调度合适的动画。方法 1700在操作1795处结束。
本文描述的实施例和功能可经许多计算***来操作,包括有线和无线计算***、移动计算***(如移动电话、图形输入板或平板型计算机、膝上型计算机等)。此外,本文所述的实施例和功能可在分布式***上操作,其中应用功能、存储器、数据存储和检索、以及各种处理功能可在诸如因特网或内联网之类的分布式计算网络上彼此远程地操作。各种类型的用户界面和信息可经板载计算设备显示器或经与一个或多个计算设备相关联的远程显示单元被显示。例如,各种类型的用户界面和信息可在墙壁表面上被显示和交互,各种类型的用户界面和信息被投射在墙壁表面上。与可用于实施本发明的各实施例的许多计算***的交互包括:键击输入、触摸屏输入、语音或其他音频输入、姿势输入(其中相关联的计算设备配备有用于捕捉和解释用于控制计算设备的功能的用户姿势的检测(如相机)功能)等。图18-20及相关联的描述提供了其中可实施本发明的各实施例的各种操作环境的讨论。然而,关于图18-9所示出和讨论的设备和***是用于示例和说明的目的,而非对可被用于实施本文所述的本发明的各实施例的大量计算设备配置的限制。
图18是示出可用来实施本发明的各实施例的计算设备1800的示例物理组件的框图。下面描述的计算设备组件可适用于上述的计算设备。在基本配置中,计算设备1800可包括至少一个处理单元1802和***存储器 1804。取决于计算设备的配置和类型,***存储器1804可包括,但不限于,易失性存储器(例如,随机存取存储器(RAM))、非易失性存储器(例如,只读存储器(ROM))、闪存、或任何组合。***存储器1804可包括操作***1805、一个或多个编程模块1806,且可包括web浏览器应用1820。例如,操作***1805可适用于控制计算设备1800的操作。在一个实施例中,编程模块1806可包括如上参看图1所述的安装在计算设备1800上的动画引擎160。此外,本发明的实施例可结合图形库、其他操作***、或任何其他应用程序来实践,并且不限于任何特定应用或***。该基本配置在图18 中由虚线1808内的那些组件示出。
计算设备1800可具有附加特征或功能。例如,计算设备1800还可包括附加数据存储设备(可移动和/或不可移动),诸如例如,磁盘、光盘、或磁带。这些附加存储在图18中由可移动存储1809和不可移动存储1810示出。计算设备1800还可包含可允许设备1800诸如通过分布式计算环境中的网络(例如,内联网或因特网)来与其他计算设备1816进行通信的通信连接1818。通信连接1816是通信介质的一个示例。
如上所述,可在***存储器1804中存储包括操作***1805在内的多个程序模块和数据文件。当在处理单元1802上执行时,诸如动画引擎160 之类的编程模块1806可执行各过程,包括例如,如上所述的一种或多种方法1700的各个阶段。上述过程是一个示例,且处理单元1802可执行其他过程。根据本发明的实施例可使用的其他编程模块可包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用等。
一般而言,根据本发明的实施例,程序模块可包括可执行特定任务或可实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本发明的实施例可用其他计算机***配置来实践,包括手持式设备、多处理器***、基于微处理器的***或可编程消费电子产品、小型机、大型计算机等。本发明的实施例还可在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
此外,本发明的实施例可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的单个芯片上实践。例如,可以通过片上***(SOC)来实施本发明的各实施例,其中,可以将图18中示出的每个或许多组件集成到单个集成电路上。这样的SOC设备可包括一个或多个处理单元、图形单元、通信单元、***虚拟化单元以及各种应用功能,所有这些都被集成到(或“烧录到”)芯片基板上作为单个集成电路。当通过SOC操作时,在此所述的关于应用160 的功能可以通过在单个集成电路(芯片)上集成有计算设备/***1800的其它组件的专用逻辑来操作。本发明的实施例还可使用能够执行诸如例如, AND(与)、OR(或)和NOT(非)的逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的实施例可在通用计算机或任何其他电路或***中实践。
例如,本发明的实施例可被实现为计算机过程(方法)、计算***、或诸如计算机程序产品或计算机可读介质之类的制品。计算机程序产品可以是计算机***可读并对用于执行计算机过程的指令的计算机程序编码的计算机存储介质。
本文所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。***存储器1804、可移动存储1809和不可移动存储1810都是计算机存储介质(即,存储器存储)的示例。计算机存储介质可包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或者可用于存储信息且可由计算设备1800访问的任何其他介质。任何这样的计算机存储介质都可以是设备 1800的一部分。计算设备1800还可以具有输入设备1812,如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可包括诸如显示器、扬声器、打印机等输出设备1814。上述设备是示例,并且可使用其他设备。
本文所使用的术语计算机可读介质还可包括通信介质。通信介质可由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传递介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。
图19A和19B示出可用来实施本发明的各实施例的合适的移动计算环境,例如移动电话1900、智能电话、输入板个人计算机、膝上型计算机等。参考图19A,示出了用于实现各实施例的示例移动计算设备1900。在一基本配置中,移动计算设备1900是具有输入元件和输出元件两者的手持式计算机。输入元件可包括允许用户将信息输入到移动计算设备1900中的触摸屏显示器1905和输入按钮1915。移动计算设备1900还可结合允许进一步的用户输入的可选的侧面输入元件1915。可选的侧面输入元件1915可以是旋转开关、按钮、或任何其他类型的手动输入元件。在替代实施例中,移动计算设备1900可结合更多或更少的输入元件。例如,在某些实施例中,显示器1905可以不是触摸屏。在又一替代实施例中,移动计算设备是便携式电话***,如具有显示器1905和输入按钮1910的蜂窝电话。移动计算设备1900还可包括可选的小键盘1935。可选的小键盘1935可以是物理小键盘或者在触摸屏显示器上生成的“软”小键盘。
移动计算设备1900结合输出元件,如可显示图形用户界面(GUI)的显示器1905。其他输出元件包括扬声器1925和LED光1920。另外,移动计算设备1900可包含振动模块(未示出),该振动模块使得移动计算设备 1900振动以将事件通知给用户。在又一实施例中,移动计算设备1900可结合耳机插孔(未示出),用于提供另一手段来提供输出信号。
尽管此处组合移动计算设备1900来描述,但在替代实施例中,本发明还可组合任何数量的计算机***来被使用,如在台式环境中、膝上型或笔记本计算机***、多处理器***、基于微处理器或可编程消费电子产品、网络PC、小型计算机、大型计算机等。本发明的实施例也可在分布式计算环境中实践,其中任务由分布式计算环境中通过通信网络链接的远程处理设备来执行;程序可位于本机和远程存储器存储设备中。总而言之,具有多个环境传感器、向用户提供通知的多个输出元件和多个通知事件类型的任何计算机***可结合本发明的实施例。
图19B是示出在一个实施例中使用的诸如图19A所示的计算设备等移动计算设备的组件的框图。即,移动计算设备1900可结合***1902以实现某些实施例。例如,***1902可被用于实现可运行与台式或笔记本计算机的应用类似的一个或多个应用的“智能电话”,这些应用例如浏览器、日程安排、即时消息、以及媒体播放器应用。在某些实施例中,***1902被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。
一个或多个应用程序1966可被加载到存储器1962中并在操作*** 1964上或与操作***2064相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、PIM(个人信息管理)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息通信程序等等。***1902还包括存储器1968 内的非易失性存储1962。非易失性存储1968可被用于存储在***1902断电时不会丢失的持久信息。应用1966可使用信息并将信息存储在非易失性存储1968中,如电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留在***1902上并被编程为与驻留在主控机计算机上的对应同步应用进行交互,以保持存储在非易失性存储1968中的信息与存储在主控机计算机上的对应信息相同步。如应被理解的,其他应用可被加载到存储器1962中且在设备1900上运行,包括参看图1上述的动画引擎160。
***1902具有可被实现为一个或多个电池的电源1970。电源1970还可包括外部功率源,如补充电池或对电池重新充电的AC适配器或加电对接托架。
***1902还可包括执行发射和接收无线电频率通信的功能的无线电 1972。无线电1972通过通信运营商或服务供应商方便了***1902与“外部世界”之间的无线连接。来往无线电1972的传输是在操作***1964的控制下进行的。换言之,无线电1972接收的通信可通过操作***1966传播到应用程序1964,反之亦然。
无线电1972允许***1902例如通过网络与其他计算设备通信。无线电1972是通信介质的一个示例。通信介质通常由诸如载波或其他传输机制之类的已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传送介质。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。如此处所使用的术语“计算机可读介质”包括存储介质和通信介质两者。
***1902的该实施例是以两种类型的通知输出设备来示出的:可被用于提供视觉通知的LED 1920,以及可被用于扬声器1925提供音频通知的音频接口1974。这些设备可直接耦合到电源1970,使得当被激活时,即使为了节省电池功率而可能关闭处理器1960和其他组件,它们也保留一段由通知机制指示的保持通电时间。LED 1920可被编程为无限地保持通电,直到用户采取行动指示该设备的通电状态。音频接口1974用于向用户提供听觉信号并从用户接受听觉信号。例如,除被耦合到扬声器1925以外,音频接口1974还可被耦合到话筒以接收听觉输入,诸如便于电话对话。根据各本发明的各实施例,话筒也可充当音频传感器来便于对通知的控制,如下文将描述的。***1902可进一步包括允许板载相机1930的操作来记录静止图像、视频流等的视频接口1976。
移动计算设备实现***1902可具有附加特征或功能。例如,设备还可包括附加数据存储设备(可移动的/或不可移动的),诸如磁盘、光盘或磁带。此类附加存储在图19B中由存储1968示出。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。
设备1900生成或捕捉的且经***1902存储的数据/信息可如上所述本地存储在设备1900上,或数据可被存储在可由设备通过无线电1972或通过设备1900和与设备1900相关联的一分开的计算设备之间的有线连接访问的任何数量的存储介质上,该计算设备如例如因特网之类的分布式计算网络中的服务器计算机。如应理解的,此类数据/信息可经设备1900、经无线电1972或经分布式计算网络来被访问。类似地,这些数据/信息可根据已知的数据/信息传送和存储手段来容易地在计算设备之间传送以供存储和使用,这些手段包括电子邮件和协作数据/信息共享***。
图20示出了一***体系结构,该***体系结构用于在协作工作会话之前、期间或之后经由分布式计算环境向各种客户机设备提供与该动画引擎 160相关联的通信和内容,如上所述。如上所述,动画引擎160允许对于计算机生成的显示组件的管理,包括为存储器和处理资源节省而丢弃闲置显示组件。通过动画引擎160管理的显示组件可被存储在不同的通信信道或其他存储类型中。例如,可使用目录服务2022、web门户2024、邮箱服务 2026、即时消息通信存储2028以及社交联网站点2030来存储显示组件以及从中发展出显示组件的信息。***/应用160、2018可使用任何这些类型的***等,用于允许在存储2016中管理和存储显示组件。服务器2020可向客户机提供关于被管理的显示组件和内容的通信。作为一个示例,服务器2020可以是通过web提供显示组件管理通信和内容的web服务器。服务器2020可通过网络2015在web上向客户机提供在线显示组件管理和内容。可获取显示组件管理通信和内容的客户机的示例包括计算设备2000,该计算设备可包括任何通用个人计算机、平板式计算设备2035和/或可包括智能电话的移动计算设备1900。任何这些设备可从存储2016获得显示组件管理通信和内容。
以上参考根据本发明的实施例的方法、***和计算机程序产品的框图和/或操作说明描述了本发明的实施例。框中所注明的各功能/动作可按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可基本同时执行,或者这些框有时可按相反的次序执行。
对本领域的技术人员而言,显然可对本发明作出各个修改或变化,而不背离本发明的范围或精神。在考虑说明书和实现此处公开的本发明之后,本发明的其他实施例对本领域的技术人员而言将是显而易见的。
Claims (11)
1.一种计算机实现的动画显示计算机生成的显示组件的方法,所述方法包括:
生成一个或多个显示层,用于在计算机启用的显示表面上显示一个或多个显示组件;
在所述一个或多个显示层的每一个上画出显示组件;
向所述一个或多个显示层的每一个施加动画性质;
向所述一个或多个显示层的每一个施加一个或多个动画行为,用于,当被施加至所述一个或多个显示层的每一个的动画性质发生变化时,基于所施加的动画行为,为所述一个或多个显示层的每一个,启用动画;
接收对于施加至所述显示层的其中一个或多个的一个或多个性质的变化;
将没有接收到对一个或多个性质的变化的所有显示层变平到一非动画显示层;和
根据施加至接收到性质变化的一个或多个层的一个或多个动画行为,动画显示已经接收到性质变化的一个或多个层。
2.如权利要求1所述的方法,其特征在于,向所述一个或多个显示层的每一个施加一个或多个动画行为,包括施加根据声明性标记语言所描述的一个或多个动画行为。
3.如权利要求1所述的方法,其特征在于,向所述一个或多个显示层的每一个施加一个或多个动画行为,包括向所述一个或多个显示层的每一个施加一个或多个动画类别,用于指定响应于接收对于层的性质变化可被施加至所述层的动画。
4.如权利要求1所述的方法,其特征在于,所述一个或多个动画行为包括以下行为中的一个或多个:显示层的移动、显示层的旋转、重新调整显示层的大小、比例缩放显示层、隐藏显示层、改变显示层的透明度、图像放大显示层、滚动显示层、和在显示层上循环位图的动画。
5.如权利要求1所述的方法,其特征在于,所述一个或多个动画行为包括施加至所述一个或多个层的每一个的时序功能,当根据施加至接收到性质变化的一个或多个层的一个或多个动画行为来动画显示接收到性质变化的一个或多个层时,所述时序功能指定所施加的速度和加速度。
6.如权利要求1所述的方法,其特征在于,所述一个或多个动画行为包括施加至所述一个或多个层的每一个的关键帧,所述关键帧定义如何将画到所述一个或多个显示层的每一个的显示组件的性质在动画状态之间动画显示。
7.如权利要求1所述的方法,其特征在于,生成一个或多个显示层用于在计算机启用的显示表面上显示一个或多个显示组件之前,还包括:
生成显示场景对象,用于描述为显示所述一个或多个显示组件而生成的一个或多个显示层;
生成一个或多个显示框,用于接收所述一个或多个显示层中的一个或多个;和
从所述显示场景中为所述一个或多个显示框的每一个生成层主控机,用于在包含于所述一个或多个显示框的每一个中的显示层上渲染显示组件。
8.如权利要求7所述的方法,其特征在于,响应于为所述一个或多个显示框的每一个生成层主控机,还包括:
从每一个层主控机检取根层;
为每一个显示框生成合成树,包括将与每一个显示框相关联的一个或多个层的每一个作为子层添加到相应的根层;和
向每一个子层施加次序指数,用于确定每一个子层相对于其他子层的动画次序。
9.一种用于动画显示计算机生成的显示组件的***,所述***包括:
动画引擎,用于启用在计算机启用的显示表面上显示的计算机生成的显示组件的基于行为的动画;
所述动画引擎包括:
用户界面(UI)线程,用于响应于显示层上的性质变化,在所述显示层上调度动画;
合成器线程,用于从所述UI线程接收具有性质变化的显示层,用于生成动画调度通信,以及用于将没有接收到性质变化的所有显示层变平到一非动画显示层;和
渲染线程,用于从所述合成器线程接收所述动画调度通信,用于根据在相关联的显示层上的性质变化,渲染与具有性质变化的所述显示层相关联的显示组件。
10.一种动画显示计算机生成的显示组件的方法,所述方法包括:
生成显示层,用于在计算机启用的显示表面上显示显示组件;
在所述显示层上画出显示组件;
向所述显示层施加动画性质;
向所述显示层施加一个或多个动画行为,用于,当施加至所述显示层的动画性质变化时,基于所施加的动画行为,启用所述显示层的动画;
将没有接收到对动画性质的变化的所有显示层变平到一非动画显示层;和
响应于施加至所述显示层的动画性质的变化,基于施加至所述显示层的一个或多个动画行为,来调度所述显示层的动画。
11.一种动画显示计算机生成的显示组件的***,所述***包括:
用于生成显示层的装置,所述装置用于在计算机启用的显示表面上显示显示组件;
用于在所述显示层上画出显示组件的装置;
用于向所述显示层施加动画性质的装置;
用于向所述显示层施加一个或多个动画行为的装置,所述装置用于当施加至所述显示层的动画性质变化时,基于所施加的动画行为,启用所述显示层的动画;
用于将没有接收到对动画性质的变化的所有显示层变平到一非动画显示层的装置;和
用于响应于施加至所述显示层的动画性质的变化,基于施加至所述显示层的一个或多个动画行为,来调度所述显示层的动画的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710740232.4A CN109300181B (zh) | 2011-11-14 | 2012-11-14 | 用户界面和内容项的计算机生成显示组件的动画 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/295,478 | 2011-11-14 | ||
US13/295,478 US9196075B2 (en) | 2011-11-14 | 2011-11-14 | Animation of computer-generated display components of user interfaces and content items |
CN201710740232.4A CN109300181B (zh) | 2011-11-14 | 2012-11-14 | 用户界面和内容项的计算机生成显示组件的动画 |
CN2012104554854A CN102999332A (zh) | 2011-11-14 | 2012-11-14 | 用户界面和内容项的计算机生成显示组件的动画 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104554854A Division CN102999332A (zh) | 2011-11-14 | 2012-11-14 | 用户界面和内容项的计算机生成显示组件的动画 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109300181A true CN109300181A (zh) | 2019-02-01 |
CN109300181B CN109300181B (zh) | 2023-05-05 |
Family
ID=47927938
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710740232.4A Active CN109300181B (zh) | 2011-11-14 | 2012-11-14 | 用户界面和内容项的计算机生成显示组件的动画 |
CN2012104554854A Pending CN102999332A (zh) | 2011-11-14 | 2012-11-14 | 用户界面和内容项的计算机生成显示组件的动画 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104554854A Pending CN102999332A (zh) | 2011-11-14 | 2012-11-14 | 用户界面和内容项的计算机生成显示组件的动画 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9196075B2 (zh) |
CN (2) | CN109300181B (zh) |
WO (1) | WO2013074385A1 (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10467273B2 (en) * | 2011-10-24 | 2019-11-05 | Image Scan, Inc. | Apparatus and method for displaying search results using cognitive pattern recognition in locating documents and information within |
US9230356B2 (en) * | 2011-12-20 | 2016-01-05 | Apple Inc. | Document collaboration effects |
US9542366B2 (en) | 2011-12-20 | 2017-01-10 | Apple Inc. | Smart text in document chat |
WO2013183801A1 (en) * | 2012-06-08 | 2013-12-12 | Lg Electronics Inc. | Rendering method of 3d web-page and terminal using the same |
US9846958B1 (en) * | 2012-10-04 | 2017-12-19 | Aftershock Services, Inc. | System and method for display object bitmap caching |
USD730916S1 (en) * | 2013-03-07 | 2015-06-02 | Amazon Technologies, Inc. | Portion of a display screen with a user interface |
US9961127B2 (en) | 2013-03-15 | 2018-05-01 | Foresee Results, Inc. | System and method for capturing interaction data relating to a host application |
US20140320505A1 (en) * | 2013-04-30 | 2014-10-30 | Kobo Incorporated | Greyscale animation |
USD753666S1 (en) | 2013-05-15 | 2016-04-12 | Tencent Technology (Shenzhen) Company Limited | Display screen portion with graphical user interface |
USD762704S1 (en) | 2013-05-15 | 2016-08-02 | Tencent Technology (Shenzhen) Company Limited | Display screen portion with animated graphical user interface |
USD737316S1 (en) * | 2013-05-15 | 2015-08-25 | Tencent Technology (Shenzhen) Company Limited | Display screen with animated graphical user interface |
USD754717S1 (en) | 2013-05-15 | 2016-04-26 | Tencent Technology (Shenzhen) Company Limited | Display screen portion with animated graphical user interface |
USD797752S1 (en) * | 2013-06-07 | 2017-09-19 | Sony Interactive Entertainment Inc. | Display screen with transitional graphical user interface |
JP5367919B1 (ja) * | 2013-07-22 | 2013-12-11 | 株式会社 ディー・エヌ・エー | 画像処理装置及び画像処理プログラム |
CN104424661B (zh) * | 2013-08-23 | 2018-01-23 | 联想(北京)有限公司 | 三维对象显示方法和装置 |
JP6162553B2 (ja) * | 2013-09-11 | 2017-07-12 | 株式会社 ディー・エヌ・エー | 画像処理装置及び画像処理プログラム |
US10157593B2 (en) * | 2014-02-24 | 2018-12-18 | Microsoft Technology Licensing, Llc | Cross-platform rendering engine |
US9569062B2 (en) * | 2014-05-21 | 2017-02-14 | Facebook, Inc. | Asynchronous execution of animation tasks for a GUI |
WO2016018062A1 (en) | 2014-07-31 | 2016-02-04 | Samsung Electronics Co., Ltd. | Method and device for providing content |
JP6227156B2 (ja) * | 2014-09-22 | 2017-11-08 | 三菱電機株式会社 | 情報表示制御システムおよびアトラス画像作成方法 |
CN104301795B (zh) * | 2014-09-26 | 2017-10-20 | 四川长虹电器股份有限公司 | 基于3d模型的智能电视大数据海报信息管理方法 |
US10163245B2 (en) | 2016-03-25 | 2018-12-25 | Microsoft Technology Licensing, Llc | Multi-mode animation system |
CN109874339A (zh) * | 2016-04-04 | 2019-06-11 | 优尼玛软件公司 | 用于创建用于传达与应用程序相关的信息的序列的方法和*** |
CN105957121A (zh) * | 2016-06-29 | 2016-09-21 | 努比亚技术有限公司 | 应用中动画的显示***及显示方法 |
CN106598406A (zh) * | 2016-11-16 | 2017-04-26 | 上海斐讯数据通信技术有限公司 | 一种基于智能终端的页面显示方法及智能终端 |
CN107204028B (zh) * | 2017-04-14 | 2021-03-09 | 郑州科技学院 | 一种影视动画制作中大规模群体智能运动的制作方法 |
CN109725956B (zh) * | 2017-10-26 | 2022-02-01 | 腾讯科技(深圳)有限公司 | 一种场景渲染的方法以及相关装置 |
CN110033501B (zh) * | 2018-01-10 | 2023-09-26 | 武汉斗鱼网络科技有限公司 | 一种动画的实现方法及电子终端 |
CN111402375B (zh) * | 2019-01-03 | 2023-09-08 | 百度在线网络技术(北京)有限公司 | 百叶窗效果的形成方法、装置和渲染引擎 |
CN109739505B (zh) | 2019-01-08 | 2019-11-29 | 网易(杭州)网络有限公司 | 一种用户界面的处理方法和装置 |
CN111739084B (zh) * | 2019-03-25 | 2023-12-05 | 上海幻电信息科技有限公司 | 图片处理方法、图集处理方法、计算机设备和存储介质 |
CN110572715B (zh) * | 2019-09-24 | 2021-04-27 | 四川长虹电器股份有限公司 | 一种解决Android TV播放webp卡顿的方法 |
CN111026472A (zh) * | 2019-10-28 | 2020-04-17 | 珠海格力电器股份有限公司 | 日历配置和日期选择的方法、装置、存储介质、电子设备 |
CN114281773B (zh) * | 2021-12-28 | 2023-10-27 | 北京思明启创科技有限公司 | 动画显示方法、装置、电子设备及计算机可读存储介质 |
CN116860138B (zh) * | 2023-07-18 | 2024-02-09 | 广东保伦电子股份有限公司 | 一种电子白板内容和背景同步缩放的实现方法及处理终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060274070A1 (en) * | 2005-04-19 | 2006-12-07 | Herman Daniel L | Techniques and workflows for computer graphics animation system |
US20080034292A1 (en) * | 2006-08-04 | 2008-02-07 | Apple Computer, Inc. | Framework for graphics animation and compositing operations |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7168048B1 (en) | 1999-03-24 | 2007-01-23 | Microsoft Corporation | Method and structure for implementing a layered object windows |
GB2373887A (en) | 2001-03-28 | 2002-10-02 | Hewlett Packard Co | Context dependent operation, including power management, of a mobile computer |
CN1427373A (zh) | 2001-12-19 | 2003-07-02 | 英业达股份有限公司 | 处理图形遮挡的方法 |
US20030197716A1 (en) | 2002-04-23 | 2003-10-23 | Krueger Richard C. | Layered image compositing system for user interfaces |
US7302648B1 (en) | 2002-07-10 | 2007-11-27 | Apple Inc. | Method and apparatus for resizing buffered windows |
US7088374B2 (en) * | 2003-03-27 | 2006-08-08 | Microsoft Corporation | System and method for managing visual structure, timing, and animation in a graphics processing system |
US7034834B2 (en) | 2003-10-24 | 2006-04-25 | Microsoft Corporation | Communication protocol for synchronizing animation systems |
US7703036B2 (en) | 2004-08-16 | 2010-04-20 | Microsoft Corporation | User interface for displaying selectable software functionality controls that are relevant to a selected object |
US20060184894A1 (en) * | 2005-02-15 | 2006-08-17 | International Business Machines Corporation | Global window management for parent/child relationships |
KR20060119085A (ko) | 2005-05-18 | 2006-11-24 | 삼성전자주식회사 | 텍스쳐 캐쉬 메모리 장치 및 이를 이용한 삼차원 그래픽가속기 및 방법 |
US8055444B2 (en) | 2006-04-04 | 2011-11-08 | Yahoo! Inc. | Content display and navigation interface |
US7872650B2 (en) | 2006-04-27 | 2011-01-18 | Microsoft Corporation | Remotely viewing large tiled image datasets |
US8884990B2 (en) | 2006-09-11 | 2014-11-11 | Adobe Systems Incorporated | Scaling vector objects having arbitrarily complex shapes |
SE533322C2 (sv) | 2007-12-21 | 2010-08-24 | Tat The Astonishing Tribe Ab | Förfarande, modul och anordning för att visa grafisk information |
US8619083B2 (en) | 2009-01-06 | 2013-12-31 | Microsoft Corporation | Multi-layer image composition with intermediate blending resolutions |
CN101882321B (zh) | 2009-05-08 | 2012-09-05 | 上海科泰世纪科技有限公司 | 动画用户界面渲染***及方法 |
CN101893980B (zh) | 2009-05-20 | 2012-04-25 | 龙旗科技(上海)有限公司 | 一种带滑动动画效果的多图像查看界面的显示方法 |
CN101714088B (zh) | 2010-01-04 | 2013-09-18 | 中兴通讯股份有限公司 | 移动终端用户界面增强视效实现方法及其装置 |
US10007393B2 (en) | 2010-01-19 | 2018-06-26 | Apple Inc. | 3D view of file structure |
US20110199318A1 (en) | 2010-02-12 | 2011-08-18 | Microsoft Corporation | Multi-layer user interface with flexible parallel movement |
US9223589B2 (en) | 2010-02-26 | 2015-12-29 | Microsoft Technology Licensing, Llc | Smooth layout animation of visuals |
US8988468B2 (en) | 2011-01-21 | 2015-03-24 | Wishabi Inc. | Interactive flyer system |
-
2011
- 2011-11-14 US US13/295,478 patent/US9196075B2/en active Active
-
2012
- 2012-11-09 WO PCT/US2012/064260 patent/WO2013074385A1/en active Application Filing
- 2012-11-14 CN CN201710740232.4A patent/CN109300181B/zh active Active
- 2012-11-14 CN CN2012104554854A patent/CN102999332A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060274070A1 (en) * | 2005-04-19 | 2006-12-07 | Herman Daniel L | Techniques and workflows for computer graphics animation system |
US20080034292A1 (en) * | 2006-08-04 | 2008-02-07 | Apple Computer, Inc. | Framework for graphics animation and compositing operations |
Also Published As
Publication number | Publication date |
---|---|
CN102999332A (zh) | 2013-03-27 |
CN109300181B (zh) | 2023-05-05 |
WO2013074385A1 (en) | 2013-05-23 |
US9196075B2 (en) | 2015-11-24 |
US20130120401A1 (en) | 2013-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109300181A (zh) | 用户界面和内容项的计算机生成显示组件的动画 | |
CN106062705B (zh) | 跨平台渲染引擎 | |
JP7476292B2 (ja) | 複合現実システムにおいて仮想コンテンツを管理および表示する方法およびシステム | |
CN104350493B (zh) | 将数据变换成可消费的内容 | |
US7818690B2 (en) | Framework for creating user interfaces containing interactive and dynamic 3-D objects | |
CN102388362B (zh) | 复杂3d空间应用中的2d软件消费品的编辑 | |
CN107219916A (zh) | 基于多平台的体验生成 | |
US20070245250A1 (en) | Desktop window manager using an advanced user interface construction framework | |
CN102687105B (zh) | 用于运行时可配置的用户界面控制器的***及方法 | |
CN112230909B (zh) | 小程序的数据绑定方法、装置、设备及存储介质 | |
US20170131874A1 (en) | Software Design Tool For A User Interface And The Administration Of Proximity Responsive Information Displays In Augmented Reality Or Virtual Reality Environments | |
CN101944027A (zh) | 一种用户界面生成方法 | |
CN106681593A (zh) | 一种用户界面ui控件的显示控制方法及装置 | |
CN106164839A (zh) | 通过预生成应用元件的替代的图形表示来对输入做出低等待时间视觉响应以及在图形处理单元上的输入处置 | |
US20200320795A1 (en) | System and layering method for fast input-driven composition and live-generation of mixed digital content | |
CN115129212A (zh) | 视频编辑方法、装置、计算机设备、存储介质及产品 | |
US8140581B2 (en) | Configurable view on data models | |
CN110286971A (zh) | 处理方法及***、介质和计算设备 | |
Linghao et al. | On methods of designing smartphone interface | |
CN104077114A (zh) | 一种更换应用软件的显示界面的方法及电子设备 | |
CN110502171A (zh) | 屏幕显示的设置方法、终端及介质 | |
US10579713B2 (en) | Application Markup language | |
CN108228036B (zh) | 一种windows中窗口菜单的实现方法及装置 | |
CN102253841A (zh) | 一种小型图形用户界面*** | |
Kim et al. | Scene Graph for Dynamic Virtual Environment: Spangraph |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |