管理多个显示窗口的设备、方法和图形用户界面转让专利

申请号 : CN201480077783.1

文献号 : CN106462354B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 江晓明言建余雄风徐鸣

申请人 : 珠海豹好玩科技有限公司

摘要 :

执行在具有触摸屏的电子设备上的一种方法。该方法包括:选择将要在触摸屏上渲染的一个或多个窗口,并确定与所述选择的窗口相关的显示顺序;至少部分地根据所述选择的窗口的显示顺序和总数,确定每个所述选择的窗口各自的显示位置;根据各自的显示位置,以纸牌扇的方式在触摸屏上渲染所述选择的窗口。

权利要求 :

1.一种在电子设备上显示窗口的方法,包括:所述电子设备具有一个触摸屏、一个或多个处理器,以及存储器,所述存储器用于存储被所述一个或多个处理器执行的程序,选择将要在触摸屏上渲染的一个或多个窗口,并确定与所述选择的窗口相关的显示顺序,其中,所述确定与所述选择的窗口相关的显示顺序包括:根据所述选择的窗口被打开的时间顺序确定所述显示顺序;

至少部分地根据所述选择的窗口的显示顺序和总数,确定每个所述选择的窗口各自的显示位置;

根据各自的显示位置,以纸牌扇的方式在触摸屏上渲染所述选择的窗口;

向所述选择的窗口增加新窗口时,根据各自更新后的显示位置,以纸牌扇的方式在触摸屏上动态地渲染所述新窗口和所述选择的窗口;

在所述选择的窗口中移除窗口时,根据各自更新后的显示位置,以纸牌扇的方式在触摸屏上动态地渲染剩余的选择的窗口。

2.如权利要求1所述的方法,其中,所述选择的窗口对应于运行在所述电子设备上不同应用程序的实例。

3.如权利要求1所述的方法,其中,所述选择的窗口对应于运行在所述电子设备上的一种应用程序的实例。

4.如权利要求1所述的方法,进一步包括:检测用户向所述选择的窗口增加新窗口的用户指令;

响应所述用户指令:

更新所述选择的窗口的总数;

如果所述选择的窗口的总数在预定范围内,更新所述选择的窗口各自在触摸屏上的显示位置;以及根据各自更新后的显示位置,以纸牌扇的方式在触摸屏上动态地渲染所述新窗口和所述选择的窗口。

5.如权利要求1所述的方法,进一步包括:检测针对在所述触摸屏上的所述选择的窗口中的一个窗口的手指滑动手势;

响应所述手指滑动手势:

从触摸屏上移除所述手指滑动的窗口;

更新剩余选择的窗口的总数;

如果剩余选择的窗口更新后的总数在预定的范围内,更新触摸屏上剩余选择的窗口的各自显示位置;以及根据各自更新后的显示位置,以纸牌扇的方式在触摸屏上动态地渲染剩余的选择的窗口。

6.根据权利要求1所述的方法,进一步包括:检测触摸屏上的手指向左滑动手势;

响应所述手指向左滑动手势,以纸牌扇的方式按照第一角度逆时针旋转所述选择的窗口,旋转时保持窗口之间的相对位置不变,所述第一角度的大小由所述向左滑动手势确定;

检测触摸屏上的手指向右滑动手势;以及

响应所述手指向右滑动手势,以纸牌扇的方式按照第二角度顺时针旋转所述选择的窗口,旋转时保持窗口之间的相对位置不变,所述第二角度的大小由所述向右滑动手势确定。

7.如权利要求1所述的方法,进一步包括:检测触摸屏上的弧形手指运动;

响应所述弧形手指运动,以纸牌扇的方式向所述弧形手指运动的方向旋转所述选择的窗口,旋转时保持窗口之间的相对位置不变;

检测触摸屏上的所述弧形手指运动的终止;以及响应所述弧形手指运动的终止,停止旋转触摸屏上的所述选择的窗口。

8.如权利要求1所述的方法,进一步包括:检测针对触摸屏上的所述选择的窗口中的一个窗口的手指点击手势;

当手指点击手势的持续时间小于预定的时间间隔时,在触摸屏上将所述选择的窗口替换为所述手指点击的窗口的放大视图;以及当手指点击手势的持续时间大于或等于预定的时间间隔时,将所述选择的窗口的显示方式从纸牌扇的方式动态地改变成纸牌堆叠的方式。

9.如权利要求8所述的方法,其中,当所述选择的窗口以纸牌扇的方式显示时,所述选择的窗口以不同的方位角被渲染在触摸屏上,而当所述选择的窗口以纸牌堆叠的方式显示时,所述选择的窗口以相同的方位角被渲染在触摸屏上。

10.如权利要求8所述的方法,进一步包括:在以纸牌堆叠的方式渲染所述选择的窗口之后:检测触摸屏上的针对所述选择的窗口的手指滑动手势;

当确定所述手指滑动手势为第一方向时,关闭触摸屏上的所述选择的窗口;而当确定所述手指滑动手势为与所述第一方向大体垂直的第二方向时,将所述选择的窗口的显示方式从所述纸牌堆叠的方式动态地替换为所述纸牌扇的方式。

11.如权利要求8所述的方法,进一步包括:在以纸牌堆叠的方式渲染所述选择的窗口之后:检测在触摸屏上针对所述选择的窗口的手势;

当所述手势被确定为手指滑动手势时,从触摸屏上移除所述选择的窗口;而当所述手势被确定为手指点击手势时,将所述选择的窗口的显示方式从所述纸牌堆叠的方式动态地替换回所述纸牌扇的方式。

12.如权利要求1所述的方法,其中所述选择的窗口包括一个位于触摸屏中心的中心窗口,该中心窗口的边缘与触摸屏相应的边缘平行。

13.一种电子设备,包括:

触摸屏;

一个或多个处理器;

存储器;以及

一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,且被配置为由所述一个或多个处理器执行,所述一个或多个程序包含用于进行以下操作的指令:选择将要在触摸屏上渲染的一个或多个窗口,并确定与所述选择的窗口相关的显示顺序;

至少部分地根据所述选择的窗口的显示顺序和总数,确定每个所述选择的窗口的各自的显示位置,其中,所述确定与所述选择的窗口相关的显示顺序包括:根据所述选择的窗口被打开的时间顺序确定所述显示顺序;

根据各自的显示位置,以纸牌扇的方式在触摸屏上渲染所述选择的窗口;

向所述选择的窗口增加新窗口时,根据各自更新后的显示位置,以纸牌扇的方式在触摸屏上动态地渲染所述新窗口和所述选择的窗口;

在所述选择的窗口中移除窗口时,根据各自更新后的显示位置,以纸牌扇的方式在触摸屏上动态地渲染剩余的选择的窗口。

14.如权利要求13所述的电子设备,其中,所述选择的窗口对应于运行在所述电子设备上不同应用程序的实例。

15.如权利要求13所述的电子设备,其中,所述选择的窗口对应于运行在所述电子设备上的一种应用程序的实例。

16.如权利要求13所述的电子设备,进一步包括:检测用户向所述选择的窗口增加新窗口的用户指令;

响应所述用户指令:

更新所述选择的窗口的总数;

如果所述选择的窗口的总数在预定范围内,更新所述选择的窗口各自在触摸屏上的显示位置;以及根据各自更新后的显示位置,在触摸屏上以纸牌扇的方式动态地渲染所述新窗口和所述选择的窗口。

17.如权利要求13所述的电子设备,进一步包括:检测针对在所述触摸屏上的所述选择的窗口中的一个窗口的手指滑动手势;

响应所述手指滑动手势:

从触摸屏上移除所述手指滑动的窗口;

更新剩余选择的窗口的总数;

如果剩余选择的窗口更新后的总数在预定的范围内,更新触摸屏上剩余选择的窗口的各自显示位置;以及根据各自更新后的显示位置,在触摸屏上以纸牌扇方式的动态地渲染剩余的可选择的窗口。

18.根据权利要求13所述的电子设备,进一步包括:检测触摸屏上的手指向左滑动手势;

响应所述手指向左滑动手势,以纸牌扇的方式按照第一角度逆时针旋转所述选择的窗口,旋转时保持窗口之间的相对位置不变,所述第一角度的大小由所述向左滑动手势确定;

检测触摸屏上的向右滑动手势;

响应所述手指向右滑动手势,以纸牌扇的方式按照第二角度顺时针旋转所述选择的窗口,旋转时保持窗口之间的相对位置不变,所述第二角度的大小由所述向右滑动手势确定。

19.如权利要求13所述的电子设备,进一步包括:检测触摸屏上的弧形手指运动;

响应所述弧形手指运动,以纸牌扇的方式向所述弧形手指运动的方向旋转所述选择的窗口,旋转时保持窗口之间的相对位置不变;

检测触摸屏上的所述弧形手指运动的终止;以及响应所述弧形手指运动的终止,停止旋转触摸屏上的所述选择的窗口。

20.如权利要求13所述的电子设备,进一步包括:检测针对触摸屏上的所述选择的窗口中的一个窗口的手指点击手势;

当手指点击手势的持续时间小于预定的时间间隔时,在触摸屏上将所述选择的窗口替换为所述手指点击的窗口的放大视图;以及当手指点击手势的持续时间大于或等于预定的时间间隔时,将所述选择的窗口的显示方式从纸牌扇的方式动态地改变成纸牌堆叠的方式。

21.一种永久的计算机可读存储媒介,存储有一个或多个程序,所述一个或多个程序包括一些指令,当这些指令被具有触摸屏的电子设备执行时,使得设备执行以下操作:选择将要在触摸屏上渲染的一个或多个窗口,并确定与所述选择的窗口相关的显示顺序;

至少部分地根据所述选择的窗口的显示顺序和总数,确定每个所述选择的窗口的各自的显示位置,其中,所述确定与所述选择的窗口相关的显示顺序包括:根据所述选择的窗口被打开的时间顺序确定所述显示顺序;

根据各自的显示位置,在触摸屏上以纸牌扇的方式渲染所述选择的窗口;

向所述选择的窗口增加新窗口时,根据各自更新后的显示位置,以纸牌扇的方式在触摸屏上动态地渲染所述新窗口和所述选择的窗口;

在所述选择的窗口中移除窗口时,根据各自更新后的显示位置,以纸牌扇的方式在触摸屏上动态地渲染剩余的选择的窗口。

说明书 :

管理多个显示窗口的设备、方法和图形用户界面

技术领域

[0001] 本申请涉及具有触敏表面的电子设备,包括但不限于具有触敏表面且基于用户指令(例如,通过手势)管理触敏表面上的多个显示窗口的电子设备。

背景技术

[0002] 近年来,使用触敏(touch-sensitive)表面作为输入设备的计算机或其他电子设备显著增加。典型的触敏表面包括触摸板和触摸屏。这种触敏表面被广泛地用于操作显示屏上的用户界面对象。典型的操作包括打开/关闭一个对象或者调整对象的位置和/或大小。典型的用户界面对象包括数字图像、视频、窗口、以及其他图形。
[0003] 现有的执行这些操作的方法是繁琐的、刻板的、效率低下的,和不直观的。例如,现有电子设备的用户经常发现以一个更加用户友好的方式操作大量窗口是一个挑战。因此,不恰当的方法可对用户造成重大的认知负担,从而导致用户通过设备完成一项任务需要更长的时间,浪费用户的时间和设备的电池电量。

发明内容

[0004] 因此,需要具有更快捷、更有效、更直观的操作用户界面对象的方法和界面的电子设备。这样的方法和界面能够补充或替代传统的操作用户界面对象的方法。这样的方法和界面减少了用户的认知负担并且形成更加有效地人机交互。对于电池供电的电子设备,这样的方法和界面能够节约电量且增加电池电量的使用时间。
[0005] 本申请公开的设备减少或消除了上述的与具有触敏表面的电子设备的用户界面相关的不足与其他问题,该公开的设备可以为具有触敏表面(例如触摸板或触摸屏)的台式计算机或者便携设备(例如,笔记本电脑,平板电脑,或手持设备)。在一些实施例中,该设备具有图形用户界面(GUI,graphical user interface)、一个或多个处理器、存储器以及存储在存储器中用于执行多种功能的一个或多个模块、程序或指令集。在一些实施例中,用户与GUI的交互主要通过在触敏表面上的手指接触和手势。在一些实施例中,所述功能主要包括图像编辑、绘图(drawing)、展示(presenting)、文字处理、网站创建、磁盘写入、电子表格制作、玩游戏、打电话、视频会议、电子邮件、即时通讯、策划支持(workout support)、数码相片、数字视频、网页浏览、数字音乐播放、和/或数字视频播放。执行这些功能的可执行指令可以被包含在计算机可读存储介质中或者其他被配置为被一个或多个处理器执行的计算机程序产品中。
[0006] 根据一些实施例,一种方法在电子设备中被执行,该电子设备具有触摸屏、一个或多个处理器和存储有被所述一个或多个处理器执行的程序的存储器。该方法包括:选择一个或多个将要在触摸屏上渲染的窗口与所述选择的窗口相关的显示顺序;至少部分地根据所述选择的窗口的显示顺序和数量,确定每个所述选择的窗口各自的显示位置;根据各自的显示位置,以纸牌扇的方式在触摸屏上渲染所述选择的窗口。
[0007] 根据一些实施例,一种电子设备包括触摸屏、一个或多个处理器、存储器、以及一个或多个程序;该一个或多个程序存储在所述存储器中且被配置为被所述一个或多个处理器执行,且该一个或多个程序包括用于执行上述方法的操作的指令。根据一些实施例,电子设备上的图形用户界面包括上述方法中显示的一个或多个元素,正如上述方法中描述的一样,响应用户的输入渲染以及更新这些元素,其中,该电子设备具有触摸屏、存储器、和执行存储在所述存储器中的一个或多个程序的一个或多个处理器。根据一些实施例,一种已经存储有指令的计算机可读存储介质,当这些指令被具有触摸屏的电子设备执行时,使得该设备执行上述方法的操作。根据一些实施例,一种电子设备包括:触摸屏以及执行上述方法步骤的装置。根据一些实施例,一种信息处理装置,应用在具有触摸屏的电子设备中,该信息处理装置包括执行上述方法的操作的装置。
[0008] 因此,提供了更快、更有效和更直观的用来操作用户界面对象方法和交互的具有触摸屏的电子设备,因而提高了这种设备的效力、效率以及用户满意度。这种方法和交互能够补充或替代传统的操作用户界面对象的方法。

附图说明

[0009] 为了更好地理解前面提及的本发明的实施例以及其附加的实施例,结合之后的附图来介绍下面的具体实施方式,附图中的相同的附图标记代表相同的部件。
[0010] 图1A示出了根据一些实施例的具有触摸屏的便携式电子设备的框图。
[0011] 图1B示出了根据一些实施例的用于事件处理的示例性组件的框图。
[0012] 图2A示出了根据一些实施例的具有显示器和触敏表面的示例性电子设备的框图。
[0013] 图2B示出了根据一些实施例的具有触敏表面的电子设备的、与显示器分离的示例性用户界面。
[0014] 图3A-3K为根据一些实施例的在触摸屏上操作用户界面对象的示例性用户界面。
[0015] 图4A-4E为根据一些实施例的操作用户界面对象的方法的流程图。
[0016] 各个附图中相同的附图标记代表相同的部件。

具体实施方式

[0017] 将对实施例进行详细介绍,附图中示出了实施例中的例子。为了提供本发明的深入的理解,在下面的详细描述中,许多具体细节将被陈述。然而,对于本领域技术人员而言,显而易见的是,可以在没有这些具体细节的情况下来实现本发明。在其他情况下,众所周知的方法、程序、组件、电路以及网络都没有详细描述,以免不必要地使实施例难理解。
[0018] 将描述电子设备的、用于这些电子设备的用户界面的、使用这些电子设备的相关处理的实施例。在一些实施例中,该电子设备为便携式通讯设备,例如移动电话,这种电子设备也包含其他功能,例如PDA和/或音乐播放功能。其他便携设备,例如具有触敏表面(例如,触摸屏和/或触摸板)的笔记本电脑或者平板电脑,也可能会被使用。应当理解的是,在一些实施例中,该设备可以不限于便携式通讯设备,还可以是具有触敏表面(例如,触摸屏和/或触摸板)的台式计算机。
[0019] 在下面的讨论中,将描述一种具有显示器和触敏表面的电子设备。然而,可以理解的是,该电子设备可以包括一个或多个其他物理用户交互设备,例如物理键盘、鼠标和/或操纵杆。
[0020] 该设备支持各种应用,例如,以下应用中的一个或多个:绘图应用、演示应用、文字处理应用、网站创建应用、磁盘写应用、电子表格应用、游戏应用、电话应用、视频会议应用、电子邮件应用、即时通讯应用、锻炼支持应用、照片管理应用、数字相机应用、数字视频摄录机应用、网页浏览应用、数字音乐播放器应用、和/或数字视频播放器应用。
[0021] 运行在设备上的各种应用可能用到至少一个共同的物理用户交互设备,如触敏表面。触敏表面的一个或多个功能以及相应的显示在触敏表面上的信息,可以从一个应用到下一个应用和/或在各自的应用内部调整和/或改变。这样一来,设备的一个共同的物理结构(如触敏表面)能够支持各种具有对于用户而言更加直观和透明的用户界面的应用程序。
[0022] 现在将注意力转向具有触摸屏的便携式电子设备。图1A示出了根据一些实施例的具有触摸屏系统112的便携式电子设备100的框图。设备100可以包括存储器102(存储器102可以包括一个或多个计算机可读存储介质)、存储控制器122、一个或多个处理单元(CPU’S)120、外围设备接口118、射频电路108、音频电路110、扬声器111、麦克风113、输入/输出(I/O)子系统106、其他输入或控制设备116、以及外设端口124。设备100可以包括一个或多个光学传感器164。这些组件可通过一个或多个通讯总线或信号线103相连接。
[0023] 需要说明的是,设备100只是便携式电子设备的一个例子,设备100可以比图中所示具有更多的或更少的组件,可能结合两个或两个以上的组件,或者可能具有不同的组件配置或排列。图1中所示的各种组件可以以硬件方式、软件方式或者包括一个或多个信号处理电路和/或专用集成电路的硬件和软件的结合方式实施。
[0024] 存储器102可以包括高速随机存取存储器,并且也可以包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备、或者其他非易失性固体存储设备。设备100的其他组件对存储器102的访问可以通过存储控制器122控制,其他组件例如CPU120和外围设备接口118。
[0025] 外围设备接口118可以被用于将设备的输入和输出外围设备连接到CPU120和存储器102。一个或多个处理器120运行或执行存储在存储器102中的各种软件程序和/或指令集以完成设备100的各种功能并处理数据。
[0026] 在一些实施例中,外围设备接口118、CPU120、以及存储控制器122可以被实施在一个单芯片(single chip)上,例如芯片104。在一些其他实施例中,他们也可以被实施在相互独立的多个芯片上。
[0027] RF(射频)电路108接收并发射RF信号,也叫电磁信号。RF电路108将电信号转换成电磁信号,或者将电磁信号转换成电信号,并通过电磁信号与通信网络以及其他通信设备进行通信。RF电路108可以包括用于执行这些功能的公知电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编码解码芯片集、用户身份模块(SIM)卡、存储器、等等。
[0028] RF电路108可以通过无线通信与网络进行通信,例如因特网,因特网也被称为万维网(WWW)、内联网和/或无线网,例如移动电话网、无线局域网(LAN)和/或城域网(MAN)、以及其他设备。该无线通信可以使用多种通信标准、协议和技术中的任意一种,包括但不限于全球移动通信系统(GSM)、增强的数据GSM环境(EDGE)、高速下行分组接入(HSDPA)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、无线保真(WiFi)(例如,IEEE 802.11a,IEEE 802.11b,IEEE 802.11g和/或IEEE 802.11n)、网络电话(VoIP)、Wi-MAX、电子邮件协议(例如,互联网信息访问协议(IMAP)和/或邮局协议(POP))、即时通讯(例如,可扩展通讯和状态协议(XMPP))、针对即时通讯和状态杠杆扩展的会话初始化协议(SIMPLE)、即时通讯和状态服务(Instant Messaging and Presence Service,IMPS))、和/或短消息服务(SMS)、或其他任何合适的通信协议,包括在本文档的申请日期时还没有成熟的通信协议。
[0029] 音频电路110、扬声器111和麦克风113提供了一种在用户和设备100之间的音频交互。音频电路110接收来自于外围设备接口118的音频数据,将该音频数据转换成电信号,并将电信号传输给扬声器111。扬声器111再将电信号转换成人可听见的声波。音频电路110也接收麦克风113从声波转换成的电信号。音频电路110将电信号转换成音频数据并将该音频数据传输给外围设备接口118进行处理。音频数据可以通过外围设备接口118从存储器102和/或射频电路108中恢复和/或被传输到存储器102和/或射频电路108中。在一些实施例中,音频电路110也包括耳机插孔。该耳机插孔提供了音频电路110和可拆卸的音频输入/输出外围设备之间的接口,例如仅有输出功能的听筒或同时具有输出(如,戴在一个或两个耳朵上的听筒)和输入(如麦克风)功能的耳机。
[0030] I/O子系统106将设备100上的输入/输出外围设备(如触摸屏112和其他输出控制设备116)连接到外围设备接口118上。I/O子系统106可以包括显示控制器156和用于其他输入或控制设备的一个或多个输入控制器160。该一个或多个输入控制器160接收来自其他输入或控制设备116的电信号以及向其他输入或控制设备116发送电信号。其他输入或控制设备116可以包括物理按钮(如,按动按钮、摇杆按钮等)、转盘、滑动开关、操纵杆(joysticks)、点击转盘(click wheels),等等。在一些可替换的实施例中,输入控制器160可以与以下任一部件相连接或者不连接:键盘、红外端口、USB端口、和像鼠标这样的指针设备。
[0031] 触摸屏112提供一种设备与用户之间交互的输入界面和输出界面。显示控制器156接收来自于触摸屏112的电信号,和/或向触摸屏112发送电信号。触摸屏112向用户显示可视化的输出。可视化的输出可能包括图形、文本、图标、视频、以及这些中的任意结合(合称为“图形”)。在一些实施例中,部分或全部的可视化输出与用户界面对象相对应。
[0032] 触摸屏112具有一个触敏表面、传感器或一套传感器,接收来自于用户基于触觉的接触(haptic and/or tactile contact)的输入。触摸屏112和显示控制器156(连同任何相关联的模组和/或存储器102中的指令集)检测触摸屏112上的接触(和任何接触的移动或点击)并将检测到的接触转换成与显示在触摸屏112上的用户界面对象的交互(例如,一个或多个软键盘、图标、网页或图像)。在一种典型的实施例中,触摸屏112和用户之间的接触点相当于用户的手指。
[0033] 触摸屏112可以利用LCD(液晶显示器)技术、LPD(发光聚合显示器)技术、或LED(发光二极管)技术,尽管其他的显示技术也可能在其他实施例中被应用。触摸屏112和显示控制器156可以利用现在已知的或者以后可能发展的任意流行的触摸传感技术来检测接触以及任意移动或点击,包括但不限于电容式的、电阻式的、红外线的、以及表面声波技术,以及其他近距离传感阵列或者用于检测与触摸屏112接触的一个或多个点的其他元素。用户可以通过任意合适的物体或附加物与触摸屏112进行接触,例如笔尖、手指等等。在一些实施例中,用户界面被设计主要基于手指的接触或手势下进行工作,基于手指的接触和手势比基于笔尖的输入的精度低,原因在于手指在触摸屏上的接触面积更大。在一些实施例中,设备将粗略的基于手指的输入转换成精确的指针/光标位置或命令,以执行用户所期望的行为。
[0034] 在一些实施例中,除了触摸屏之外,设备100还可以包括一个用于激活或关闭特定功能的触摸板(未示出)。在一些实施例中,与触摸屏不同,该触摸板为设备的一个不显示可视化输出的触敏区域,该触摸板可能是一个独立于触摸屏112之外的触敏表面或者由触摸屏形成的触敏表面的一个延伸。
[0035] 设备100也包括用于为各种组件供电的电源系统162。电源系统162可以包括一电源管理系统、一个或多个电源(例如,电池、交流电(AC))、充电系统、电力故障检测电路、电源转换器或换流器、电源状态指示器(例如,发光二极管(LED))和便携设备中其他任何与电力的产生、管理和分配相关的组件。
[0036] 设备100还可以包括一个或多个光学传感器164。图1A示出了在I/O子系统106中与光学传感控制器158相连接的一种光学传感器。光学传感器164可以包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器164接收通过一个或多个镜头投射的环境光,并将光转换成代表图像的数据。连同成像模组143(也称摄像模组),光学传感器164可以捕获静态图像或视频。在一些实施例中,一个光学传感器可以位于设备100的后面,与位于设备前面的触摸屏112相对,以使触摸屏可以被用作静态和/或视频图像获取的取景器。在一些实施例中,光学传感器位于设备的前面,以使在用户在触摸屏上观看其他视频会议参与者时,用于视频会议的用户的图像可以被获取。在一些实施例中,光学传感器164的位置可以被用户改变(例如,在设备的外壳内旋转镜头和传感器)以使单个光学传感器164可以与触摸屏一起同时被用于视频会议和/或视频图像的获取。
[0037] 设备100还可以包括一个或多个光学传感器164。图1A示出了在I/O子系统106中与光学传感控制器158相连接的一种光学传感器。光学传感器164可以包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器164接收通过一个或多个镜头投射的环境光,并将光转换成代表图像的数据。连同成像模组143(也称摄像模组),光学传感器164可以捕获静态图像或视频。在一些实施例中,一个光学传感器可以位于设备100的后面,与位于设备前面的触摸屏112相对,以使触摸屏可以被用作静态和/或视频图像获取的取景器。在一些实施例中,光学传感器位于设备的前面,以使在用户在触摸屏上观看其他视频会议参与者时,用于视频会议的用户的图像可以被获取。在一些实施例中,光学传感器164的位置可以被用户改变(例如,在设备的外壳内旋转镜头和传感器)以使单个光学传感器164可以与触摸屏一起同时被用于视频会议和/或视频图像的获取。
[0038] 设备100也可以包括一个或多个接近传感器166。在一些实施例中,当电子设备被放置在接近用户耳朵的位置时(例如,当用户在打电话时),该接近传感器关闭并使触摸屏112无效。
[0039] 设备100也可以包括一个或多个加速计168,图1A示出了连接到外围接口118上的加速计168。可选地,加速计168可以被连接到I/O子系统106中的一个输出控制器160上。在一些实施例中,根据来自于一个或多个加速器的数据的分析,将信息以肖像视图或景观视图的形式显示在触摸屏上。除加速器168之外,可选地,设备100包括磁力计(未示出)和GPS(或全球卫星导航系统或其他导航系统)接收器(未示出),用于获取关于设备100的位置和方向(例如,肖像和景观)。
[0040] 在一些实施例中,存储在存储器102中的软件组件包括操作系统126、通信模块(或指令集)128、接触/运动模块(或指令集)130、图形模块(或指令集)132、文本输入模块(或指令集)134、全球定位系统(GPS)模块(或指令集)135、以及应用程序(或指令集)136。此外,在一些实施例中,存储器102中还存储设备/全局内部状态157.如图1A和2所示。设备/全局内部状态157包括一个或多个:应用程序激活状态,只是哪一个应用程序,如果存在,当前是激活的;显示状态,只是什么应用程序、视图或其他信息占据触摸屏112的各类区域;传感器状态,包括从设备的各种传感器和输入控制设备116获取的信息;和关于设备的位置和/或姿势的位置信息。
[0041] 操作系统126(例如,Darwin,RTXC,LINUX,UNIX,OS X,WINDOWS,Android,iOS,Sailfish,Symbian,BlackBerry OS,Windowsphone,Windows mobile或嵌入式操作系统,如VxWorks)包括各种软件组件和/或驱动程序,用于控制和管理通用系统任务(例如,内存管理、存储设备控制、电源管理,等等)并促进各种硬件和软件组件之间的通信。
[0042] 通信模块128通过一个或多个外部端口促进与其他设备之间的通信,而且包括用于处理被射频电路108和/或外部端口124接收到的数据的各种软件组件。外部端口124(例如,通用串行总线(USB)、火线,等)适用于直接耦合到其他设备或间接连接到网络(例如,因特网、无限局域网,等等)。
[0043] 接触/运动模块130可以检测与触摸屏112(结合显示控制器156)或其他触敏设备(如,触摸板或物理点击式触摸转盘)的接触。接触/运动模块130包括各种软件组件,这些软件组件用于处理与接触检测有关的各种操作,例如检测是否存在接触的发生(如,检测手指落下事件),检测是否存在接触的运动并跟踪穿过触摸屏表面的运动(例如,检测一个或多个手指拖拽事件),以及检测接触是否停止(例如,检测手指抬起时间或在接触中的停止)。接触/运动模块130来自于触敏表面的接触数据。确定接触点的运动,接触点的运动可以通过一系列接触数据体现,可以包括检测接触点的速率(大小)、速度(大小和方向),和/或加速度(大小和/或方向的改变)。这些操作可以被应用于单点接触(例如,单个手指接触)或多点同时接触(例如,多点触摸/多个手指接触)。在一些实施例中,接触/运动模块130和显示控制器156检测触摸板上的接触。在一些实施例中,接触/运动模块130和控制器160检测在棘轮(a click wheel)上的接触。
[0044] 接触/运动模块130可以检测用户输入的手势。触敏表面上的不同手势具有不同的接触图形。因此,一个手势可以通过检测一种特殊的接触图形而被检测出。例如,检测手指点击手势包括检测手指落下事件、在相同位置(或大体相同位置)检测紧随着手指落下事件的手指抬起(离开)事件(例如,在图标的位置)。又如,检测在触敏表面的手指滑动手势包括检测到手指落下事件、跟随着手指落下事件检测到一个或多个手指拖拽事件、并随后紧跟着检测到手指抬起(离开)事件。
[0045] 图形模块132包括各种已知的软件组件,这些软件组装件用于在触摸屏112或其他显示器上渲染并显示图形,包含用于改变显示的图形强度的组件。正如这里所使用的一样,术语“图形”包括能够显示给用户的任意对象,包括但不限于文本、网页、图标(如包含软键盘的用户界面对象)、数字图像、视频、动画等等。在一些实施例中,图形模块132存储有代表被应用的图形的数据。每一个图形都被分配一个相应的代码。图形模块132接收,来自于应用程序等的一个或多个说明图形显示的代码,如果必须,连同坐标数据和其他图形属性数据,然后生成屏幕图形数据输出到显示控制器156。
[0046] 文本输入模块134,可以是图形模块132的一个组件,提供用于在不同的应用程序(例如,通讯录137、浏览器147、和任何需要文本输入的其他应用程序)中输入文本的软键盘。
[0047] GPS模块135检测设备的位置并在各种应用程序中提供这些信息以便使用(例如,应用于基于位置拨号的电话138和提供基于位置的服务的应用程序,例如天气小工具、当地黄页小工具、和地图/导航小工具)。
[0048] 应用程序136包括以下模块(或指令集),或子集或父集:
[0049] 通讯录模块137(有时也叫通讯薄或通讯录列表);
[0050] 电话模块138;
[0051] 图像管理模块144;
[0052] 视频播放器模块145;
[0053] 音乐播放器模块146;和/或
[0054] 网页浏览器模块147;
[0055] 存储在存储器102中的其他应用程序136的例子包括其他文字处理应用程序、其他图像编辑应用程序、绘图应用程序、演示应用程序、JAVA支持应用程序、加密、数字版权管理、语音识别、和声音复制。
[0056] 结合触摸屏112、显示控制器156、接触/运动模块130、图形模块132、和文本输入模块134、通讯录模块137可以被应用于管理通讯薄或通讯录列表(例如,存储在存储器102或270中的通讯录模块137的应用程序内部状态192中),包括:向通讯薄中添加名字;从通讯薄中删除名字;将电话号码、邮箱地址、物理地址或其他信息与名字建立关联;将一个图像与名字相关联;分类并存储名字;提供电话号码或电子邮件地址以通过电话138、视频会议
139、电子邮件140、或IM141发起和/或促使通讯;等等。
[0057] 结合射频电路108、音频电路110、扬声器111、麦克风113、触摸屏112、显示控制器156、接触/运动模块130、图形模块132,和文本输入模块134,电话模块138可以被用于输入与电话号码一致的字符序列、访问通讯薄中的一个或多个电话号码、修改已经被输入的电话号码、拨打相应的电话号码、进行会话以及当会话完成时的断开或挂断。如上面看到的那样,无线通讯可能用到众多通讯标准、协议和技术中的任何一种。
[0058] 结合触摸屏112、显示控制器156、接触/运动模块130、图形模块132、和文本输入模块134,图像管理模块144包含可执行指令以整理、修改(如编辑)、或相反操作、标注、删除、呈现(例如,在数字放映幻灯片或图像管理中),和存储静态和/或视频图像。
[0059] 结合触摸屏,112、显示控制器156、接触/运动模块130、图形模块132、音频电路110、和扬声器111,视频播放器模块包含可执行指令以显示、呈现或者其他播放视频(例如,在显示屏112上或在通过外部接口124的外部连接的显示屏上)。
[0060] 结合显示屏112、显示系统控制器156、接触/运动模块130、图形模块132、音频电路110、扬声器111、射频电路108、和浏览器模块147,音乐播放模块146包含可执行指令,这些可执行指令允许用户下载并回放录制的音乐和以一个或多种文件格式(如MP3或AAC文件)存储的其他声音文件。在一些实施例中,设备100可以包括MP3播放器的功能。
[0061] 结合RF电路108、触摸屏112、显示系统控制器156、接触/运动模块130、图形模块132、和文本输入模块134,浏览器模块147包含可执行指令以依照用户指令浏览互联网,包括搜索、链接、接收和显示网页或其中的部分,也可以将附件和其他文件链接到网页。
[0062] 上述每个识别模块和应用程序对应于一组可执行指令,用于执行一个或多个上述功能和本申请中描述的方法(例如,这里描述的计算机实现方法和其他信息处理方法)。这些模块(也即指令集)不一定以单独的软件程序、规程或模块被执行,因而这些模块的不同子集可以在不同实施例中被结合或者以其他方式被重新排列。例如,视频播放模块145可以与音乐播放模块146结合成一个单独的模块。在一些实施例中,存储器102可以存储上述模块和数据结构的一个子集。而且,存储器102可以存储上面没有提到的附加模块和数据结构。
[0063] 在一些实施例中,设备100为设备上运行预定义的一组功能通过专门的触摸屏和/或触摸板被执行的设备。通过利用触摸屏和/或触摸板作为主要的输入控制设备用于设备100的操作,可以减少物理输入控制设备(如按钮、刻度盘等)的数量。
[0064] 专门通过触摸屏和/或触摸板执行的预先定义的功能包括用户界面间的导航。在一些实施例中,当用户触摸触摸板时,触摸板导航设备100从可以显示在设备100上的任意用户界面到主界面、主页或根菜单。在一些实施例中,触摸板可能被称为“菜单按钮”。在一些其他实施例中,菜单按钮可以是代替触摸板的物理按钮或其他物理输入控制设备。
[0065] 图1B为描述了依照一些实施例用于事件处理的示例性组件的框图。在一些实施例中,存储器102(图1中)或270(图2中)包括事件分类器170(例如,在操作系统126中)以及各自的应用程序136-1(例如,前面提到的任何一个应用程序137-147)。
[0066] 事件分类器170接收事件信息并确定应用程序136-1和应用程序136-1的应用程序视图191,以向应用程序视图传递事件信息。事件分类器170包括事件监控器171和事件分派模块174。在一些实施例中,应用程序136-1包含应用程序内部状态192,在应用程序活跃或执行时,该应用程序内部状态指示显示在触摸屏112上的当前的应用程序视图。在一些实施例中,设备/全局内部状态157被事件分类器170用于确定哪个或哪些应用程序是当前活跃的,而应用程序内部状态192被事件分类器170用于确定向哪些应用程序视图传递事件信息。
[0067] 在一些实施例中,应用程序内部状态192包含其他信息,如以下中的一个或多个:当应用程序136-1恢复执行时用到的恢复信息;用于指示被应用程序136-1显示的信息或准备显示的信息的用户界面状态信息;用于使用户能够回到应用程序136-1之前的状态或视图的状态队列;被用户操作的先前行为的重做/取消队列。
[0068] 事件监控器171接收来自于外围设备接口118的事件信息。事件信息包括关于子事件(例如,在触摸屏上的一个用户触摸,作为多点触摸手势的一部分)的信息。外围设备接口118传递来自于I/O子系统106或传感器的信息,例如接近传感器166、加速器168、和/或麦克风113(通过音频电路110)。外部设备接口118接收来自于I/O子系统106的信息包括来自于触摸屏112或触敏表面的信息。
[0069] 在一些实施例中,事件监控器171以预定的时间间隔向外部设备接口发送请求。作为回应,外部设备接口118传递事件信息。在其他的实施例中,外部设备接口118仅在有预定事件时才传递事件信号(例如,在大于预定噪音阈值和/或超过预定持续时间的情况下接收的一个输入)。
[0070] 在一些实施例中,事件分类器170也包括点击视图确定模块172和/或活动事件识别确定模块173。
[0071] 当触摸屏上显示多个视图时,点击视图确定模块172提供软件程序,用于确定在一个或多个视图中的哪里发生子事件。视图由用户在显示屏上能够看到的控件和其他元素组成。
[0072] 与应用程序相关联的用户界面的另一方面是一组视图,有时这里称作应用程序视图或用户界面窗口,在应用程序视图或用户界面窗口中显示信息并发生基于触摸的手势。检测到触摸的(各自应用程序的)应用程序视图与应用程序的编程或视图层次结构中的编程水平相对应。例如,在其中检测到触摸的最低级的视图可以称作点击视图,而且至少在某种程度上,被识别为适当的输入的事件组可以基于开始触摸手势的初始触摸的点击视图来检测。
[0073] 点击视图确定模块(Hit view determination module 172)接收与触摸手势子事件相关的信息。当应用程序具有以层级结构组织的多视图时,点击视图确定模块172将点击视图识别为在层级结构中的层级最低视图,该最低视图应该处理子事件。在多数情况下,点击视图为初始子事件发生的最低层级的视图(例如,在子事件序列中的第一子事件形成一个事件或潜在的事件)。一旦点击视图被点击视图确定模块172识别,该点击事件有代表性地接收与相同触摸或输入源相关的所有子事件,因此它被识别为点击视图。
[0074] 活跃事件识别确定模块173在视图层级结构中哪个或哪些视图应该接收特定的子事件顺序。在一些实施例中,活跃事件识别确定模块173确定只有点击视图应该接收特定的子事件顺序。在其他的实施例中,活跃事件识别确定模块173确定包含子事件物理位置的所有视图为活跃涉及的视图,从而确定所所有活跃涉及的视图应该接收特定的子事件顺序。在其他的实施例中,即使触摸子事件被完全限制在于一个特定视图相关的区域中,在层级结构中更高的视图将仍保持在活跃涉及视图中。
[0075] 事件分派模块174将事件信息分派给事件识别器(例如,事件识别器180)。本发明实施例包括活跃事件识别确定模块173,事件分派模块174将事件信息传递到被活跃事件识别确定模块173确定的事件识别器。在一些实施例中,事件分派模块174在事件队列中存储事件信息,这些事件信息被各自事件接收模块182重新取回。
[0076] 在一些实施例中,操作系统126包括事件分类器170。可选地,应用程序136-1包括事件分类器170。在其他的实施例中,事件分类器170为一个独立的模块,或者存储器102中的另一个模块中的一部分,如接触/运动模块130。
[0077] 在一些实施例中,应用程序136-1包括多个事件处理器190和一个或多个应用程序视图191,每一个应用程序包括用于处理发生在应用程序用户界面的各自视图中触摸事件的指令。应用程序136-1的每个应用程序视图191包括一个或多个事件识别器180。典型地,各自的应用程序视图191包括多个事件识别器180。在其他的实施例中,一个或多个事件识别器180为单独模块的一部分,例如用户界面工具包(图中未示出)或应用程序从中继承方法和其他属性的更高层级的对象。在一些实施例中,各自的事件处理器190包括以下中的一个或多个:数据更新器176、对象更新器177、GUI更新器178、和/或从事件分类器170中接收到的事件数据179。事件处理器190可以利用或调用数据更新器176、对象更新器177或GUI更新器178以更新应用程序内部状态192。可选地,一个或多个应用程序视图191包括一个或多个各自的事件处理器190。而且,在一些实施例中,一个或多个数据更新器176、对象更新器177、和GUI更新器178包含在各自的应用程序视图191中。
[0078] 各自的事件识别器180从事件分类器170中接收事件信息(例如,事件数据179),并从事件信息中识别一个事件。事件识别器180包括事件接收器182和事件比较器184。在一些实施例中,事件识别器180也包括以下中的至少一个子集:元数据183、和事件传递指令188(可能包括子事件的事件传递指令)。
[0079] 事件接收器182接收事件分类器170中的事件信息。该事件信息包括关于子事件的信息,例如,一个触摸或一个触摸运动。根据该子事件,事件信息还包括附加的信息,例如子事件的位置。当子事件涉及触摸运动时,事件信息也可以包括子事件的速度和方向。在一些实施例中,事件包括设备从一个方位到另一个方位的旋转(例如,从纵向旋转到横向,反之亦然),且事件信息包括关于设备当前方位(也叫设备角度)相应的信息。
[0080] 事件比较器184将事件信息与预定事件或子事件定义进行比较,基于该比较,确定一个事件或子事件,或者确定或更新事件或子事件的状态。在一些实施例中,事件比较器184包括事件定义186。事件定义186包含事件的定义(例如,子事件的预定义顺序),例如,事件1(187-1)、事件2(187-2)、以及其他。在一些实施例中,例如,在一个事件187中的子事件包括:触摸开始、触摸结束、触摸运动、触摸取消,以及多点触摸。在一个例子中,事件1(187-
1)的定义为在显示对象上的双击。例如,双击由在显示的对象上为预定阶段的第一触摸(触摸开始)、为预定阶段的第一离开(触摸结束)、在显示的对象上为预定阶段的第二触摸(触摸开始)、以及为预定阶段的第二离开(触摸结束)组成。在另一个例子中,事件2(187-2)的定义为在显示的对象上的拖拽。例如,拖拽包括在显示对象上为预定阶段的触摸(或接触)、触摸屏112上的触摸运动、触摸的离开(触摸结束)。在一些实施例中,事件也包括用于一个或多个相关的事件处理器190的信息。
[0081] 在一些实施例中,事件定义187包括针对各自用户界面对象的事件定义。在一些实施例中,事件比较器184执行点击测试以确定哪一个用户界面对象与子事件相关联。例如,在一个应用程序视图中,三个用户界面对象显示在触摸屏112上,当在触摸屏112上检测到触摸时,事件比较器184执行点击测试以确定该三个用户界面对象中哪一个与该触摸(子事件)相关联。如果每个显示的对象与各自的事件处理器190相关联,则该事件比较器运用点击测试的结果确定哪个事件处理器190应该被激活。例如,事件比较器184选择一个与子事件和对象触发点击测试相关联的事件处理器。
[0082] 在一些实施例中,用于各自事件187的定义也包括延迟动作,该延迟动作延迟事件信息的传递,直到确定子事件的顺序是否与事件识别器的事件类型相一致。
[0083] 当各自的事件识别器180确认子事件序列与事件定义186中的任何一个事件都不匹配时,各自的事件识别器180进入事件不可能、事件失败、或事件结束状态,之后它忽略后续的基于触摸手势的子事件。在这种情况下,其他事件识别器,如果有的话,保持激活以使点击视图继续跟踪并处理正在进行的基于触摸的手势子事件。
[0084] 在一些实施例中,各自的事件识别器180包括具有配置属性、标记、和/或列表的元数据,这些配置属性、标记、和/或列表指示事件传递系统如何让执行子事件的传递到积极参与的事件识别器。在一些实施例中,元数据183包括配置属性、标记、和/或列表,这些配置属性、标记、和/或列表指示事件识别器之间如何相互作用。在一些实施例中,元数据183包括配置属性、标记、和/或列表,这些配置属性、标记、和/或列表指示子事件是否被传递以改变在视图或程序化的层次结构中的级别。
[0085] 在一些实施例中,在事件的一个或多个特殊子事件被识别的情况下,各自的事件识别器180激活与事件相关的事件处理器190。在一些实施例中,各自的事件识别器180向事件处理器190传递与事件相关的事件信息。激活事件处理器190不同于向各自的点击视图发送(或推迟发送)子事件。在一些实施例中,事件识别器180抛出一个与识别出的事件相关的图标,且与该图标相关的事件处理器190捕获该图标并执行预定的过程。
[0086] 在一些实施例中,事件传递指令188包括子事件传递指令,子事件传递指令传递关于没有激活事件处理器的子事件的事件信息。可替代地,子事件传递指令向与子事件序列相关的事件处理器或涉及的视图传递事件信息。与子事件序列或者涉及的视图相关的事件处理器接收事件信息并执行预定的过程。
[0087] 在一些实施例中,数据更新器176创建并更新应用在应用程序136-1中的数据。例如,数据更新器176更新通讯录模块137中的电话号码,或存储用在视频播放器模块145中的视频文件。在一些实施例中,对象更新器177创建并更新用用在应用程序136-1中的对象。例如,对象更新器177创建一个新的用户界面对象或更新用户界面对象的位置。GUI更新器178更新GUI。例如,GUI更新器178准备显示信息并将显示信息发送给图形模块132以用于在触摸屏上显示。
[0088] 在一些实施例中,事件处理器190包括或有权访问数据更新器176、对象更新器177、和GUI更新器178。在一些实施例中,数据更新器176、对象更新器177、和GUI更新器178包含在各自的应用程序136-1或应用程序视图191的一个单独的模块中。在其他实施例中,它们被包含在两个或多个软件模块中。
[0089] 应该理解的是,上文讨论的关于触摸屏上的用户触摸的事件处理也适用于其他形式的控制具有输入设备的电子设备的用户输入,不是所有的用户输入都来自于触摸屏,例如,协调鼠标运动和包括或未包括单个或多个键盘按压或支撑件的鼠标按钮按压、用户运动提示、拖拽、滚动等等,在触摸板上,手写笔输入、设备运动、口头指令、眼球运动检测、生物识别输入、和/或上面的任意一种结合,都可以被用作与定义被识别的事件的子事件相关的输入。
[0090] 图2A为一些实施例中具有显示器和触敏表面的示例性的电子设备的方框图。设备200不一定是便携的。在一些实施例中,设备200为手提电脑、台式电脑、平板电脑、多媒体播放设备、导航设备、教育设备(如儿童学习玩具)、游戏系统、或控制设备(例如,家庭或工业控制器)。设备200可以包括一个或过个处理单元(CPU’s)210,一个或多个网络或其他通信接口260、存储器270、和用于连接这些组件的一个或多个通信总线220。通信总线220可以包括连接并控制系统组件之间的通信的电路(有时称为芯片)。设备200包括包含显示器240的输入/输出(I/O)接口230,典型的显示器为触摸屏。I/O接口230也可以包括键盘和/或鼠标(或其他指示设备)250和触摸板255。存储器270包括高速随机存取存储器,如DRAM,SRAM、DDRRAM或其他随机存取固态存储器设备;可以包括非易失存储器,如一个或多个磁盘存储装置、光盘存储装置、闪存装置、或其他非易失固态存储装置。存储器270可以有选择地包括一个或多个距离CPU(s)210的位置较远的存储装置。在一些实施例中,存储器270存储有与便携式电子设备100(图1)的存储器102中存储的程序、模块、和数据指令相类似的程序、模块、和数据指令,或者它们的子集。而且,存储器270可以存储有便携式电子设备100的存储器102中不存在的程序、模块、和数据指令。例如,电子设备200的存储器270可以存储绘图模块280和展现模块282,而便携式电子设备100存储器102没有存储这些模块。
[0091] 图2A中提到的每个识别单元都可以存储在一个或多个前面提到的存储装置中。每个上述识别模块相当于用于处理上述功能的指令集。上述识别模块或程序(例如,指令集)不一定作为单独的软件程序、指令或模块被执行,因此这些模块的各种子集在不同实施例中可以被结合或者相反重新组合。在一些实施例中,存储器270可以存储模块的一个子集和上述的数据指令。进一步地,存储器270可以存储上面没有提到的附加模块和数据指令。
[0092] 图2B示出了具有与显示器450(例如,触摸屏112)相互独立的触敏表面451(例如,平板或触摸板255,图2A)的设备上的示例性用户界面。尽管下面将要给出关于触摸屏112(这里触敏表面和显示器结合在一起)上的输入的许多例子,在一些实施例中,设备独立于显示器检测触敏表面上的输入,如图2B所示。在一些实施例中,触敏表面(例如,图2B中451)具有与显示器(例如,450)上的主坐标轴(例如,图2B中453)一致的主坐标轴(例如,图2B中452)。依照这些实施例,设备在与显示器上的相应位置相对应的位置(例如,图2B中的460与
468相对应,462与470相对应)上检测与触敏表面451的接触(例如,图2B中的460和462)。这种方式下,当触敏表面独立于显示器时,设备检测到的触敏表面(如,图2B中的451)上的用户输入(例如,接触469和462)被设备用来控制电子设备的显示器(例如,图2B中450)上的用户界面。可以理解的是,相同的方法也可以被用于这里描述的其他用户界面。
[0093] 此外,尽管下面的例子主要涉及手指输入(如,手指接触、手指点击手势、手指滑动手势),可以理解的是,在一些实施例中,一个或多个手指输入可以被另一种输入设备(例如,鼠标输入或手写笔输入)替代。例如,滑动手势可以被紧跟着鼠标点击(例如,代替接触)沿着滑动路径的光标运动(例如,代替接触的运动)所代替。作为另一个例子,点击手势可以被光标位于点击手势的位置时的鼠标点击所代替(例如,代替随后停止检测接触的接触检测)。相似地,当多个用户输入被同时检测时,可以理解的是多个电脑鼠标可以被同时运用,或鼠标和手指接触可能被同时运用。
[0094] 现在注意力直接转向用户界面(UI)的实施例,以及被应用在具有显示器和触敏表面的电子设备的关联过程,例如设备200或便携式电子设备100。
[0095] 图3A-3K为依照一些实施例操作触摸屏上的用户界面对象的示例性用户界面,这些附图中的用户界面用于说明下面在图4A-4E中描述的过程。图3A-3K中,为了说明的目的,一些手指接触或运动的尺寸可能被夸大。出于理解与这里披露方法和设备相关的大小和规模的目的,在图中施加的手指接触或运动不应被认为是一个要求或限制。
[0096] 特别地,图3A为依照一些实施例的用于便携式电子设备100上的应用程序菜单的示例性用户界面。相似的用户界面可以被应用在设备200上。在一些实施例中,用户界面300A包括以下元素、或子集或父集:
[0097] ·用于无线通讯的信号强度指示器302,例如移动和Wi-Fi信号;
[0098] ·当前时间304;
[0099] ·电池状态指示器306;和
[0100] ·多个应用程序图标,例如:
[0101] ο通讯录137;
[0102] ο电话138;
[0103] ο相册144;
[0104] ο视频播放器145;
[0105] ο音乐播放器146;和
[0106] ο浏览器147。
[0107] 用户可以通过手指点击触摸屏112上的相应的图标选择一个应用程序。例如,手指点击通讯录相对应的图标引起设备100在触摸屏112上显示从存储在设备100内存中的用户通讯薄获取的用户通讯录列表。用户可以通过另一个手指点击选择一个用户通讯录进行电话或发送文本信息。在这种情况下,如果限制每个用户通讯录入口的大小,触摸屏112可以同时显示多个用户通讯录以供用户选择。然而,这种便利可能不适用于其他应用程序。例如,如果用户运用手指点击310选择浏览器图标147,该浏览器应用程序可能带来多个窗口,每个窗口与用户之前浏览过的网页相对应。在这种情况下,触摸屏112可能没有足够的空间用于同时展示多个窗口。如下面描述的一样,目前的应用程序的一个方面是管理多个窗口的方法,这些多个窗口可以是也可以不是对应于相同的应用程序,以一种更有效更直观的方式,以至于用户可以快速地认出他或她查找的窗口然后使用预定的手势操作窗口。需要注意的是,选择的浏览器用于解释的目的,但是这里披露的方法同样适用于其他类型的用户界面对象,例如视频、图像、音乐集,等等。
[0108] 图3B描绘了响应用户的手指点击浏览器应用程序147对应的图标后代替了触摸屏112上的用户界面300A的一个用户界面300B。在触摸屏112的下方,具有一个主屏幕图标
312-1、列表视图图标312-2、纸牌扇图标312-3、和收藏夹图标312-4。用户选择主屏幕图标
312-1回到用户界面300A,即设备100的主屏幕。用户选择列表视图图标312-2以列表视图的形式渲染用户界面对象(例如,该例子中的页面窗口)。用户可以滚动列表视图以找到他或她寻找的网页窗口。正如它的名字暗示以及图标的显示一样,用户选择纸牌扇图标312-3像纸牌扇一样渲染用户界面对象,每个卡牌与网页窗口相对应。在这个例子中,假设纸牌扇图标312-3是被用户预先选择好的。因此,当用户点击图3A中的浏览器应用程序图标时,纸牌扇图标312-3被自动加强,如图3B所示。在任何时候,用户都可以通过手指点击靠近触摸屏
112底部的相应的图标实现不同视图模式之间的转换。
[0109] 在这四个图标的上方为一个软键313,用于向触摸屏112添加新的用户界面对象(在本实施例中,网页窗口)。假设浏览器应用程序不包含用户浏览过的任何网页,用户界面300B应该以软键313上方的空白区域而开始。响应用户对软键的手指点击314,第一浏览器窗口“A”显示在用户界面300B中。默认情况下,第一浏览器窗口“A”位于触摸屏112的中心附近。需要注意的是,浏览器窗口“A”被的大小配置为足够大,以占据软键313上面的空白区域。另一个对浏览器窗口“A”的用户手指点击315使得窗口变化到足够大的尺寸,例如,整个用户界面300B的大小。然后用户可以通过位于浏览器窗口顶部的输入框输入搜索查询或网址去浏览因特网。
[0110] 在一些实施例中,用户可以同时打开不同窗口提供不同内容的多个浏览器窗口。图3C为包括以纸牌扇的方式显示的两个浏览器窗口“A”和“B”的示例性用户界面。为了形成用户界面300C,设备更新将要显示的浏览器窗口的总数量以及在触摸屏112上的相对显示的位置。需要注意的是,浏览器窗口“A”的右下角显示在浏览器窗口“B”的左下角的下方以指示不同窗口之间具有一个顺序。例如,该顺序与浏览器窗口被打开的时间顺序相对应。在这个例子中,使用颜色或文字317或同时使用两者来强调浏览器窗口“B”以指示该窗口是最近打开的浏览器窗口,因此在其他窗口的顶部。在一些实施例中,如图3C所示,重叠区域至少部分是透明的以使窗口“A”位于窗口“B”下面的部分是可见的。在其他实施例中,重叠区域为不透明的以使窗口“A”位于窗口“B”下面的部分是不可见的。
[0111] 如3D为包括3个浏览器窗口“A”、“B”和“C”的示例性用户界面300D。例如,响应用户手指点击软键将窗口“C”添加到触摸屏112中。同样地,三个窗口也是以纸牌扇的方式显示。但是,与用户界面300C相比,窗口“A”和“B”的方位被改变以为窗口“C”节省空间。在一些实施例中,为了向触摸屏112增加新窗口,设备100不仅仅需要改变触摸屏112上现有窗口的方位还需要改变它们各自的大小。例如,在用户界面300B中窗口“A”的大小比用户界面300C中相同的窗口大,用户界面300C中窗口“A”的大小比用户界面300D中相同的窗口大。
[0112] 在一些实施例中,从用户界面300B(图3B)到用户界面300C(图3C),再到用户界面300D(图3D)的转换是一个动态的过程,包括窗口“A”从图3B中的肖像位置旋转到图3C中的倾斜位置、再到图3D中进一步倾斜的位置。对于每个浏览器窗口,根据预定的一套标准,设备100基于显示的窗口的总数和窗口的位置顺序确定新的倾斜角度。例如,如果只有一个窗口显示,那么该窗口以图3B中的肖像方式显示。如果具有两个或两个以上窗口,设备100再基于显示在触摸屏112上的窗口总数及最左边和最右边窗口的最大与最小倾斜角度,计算两个相邻窗口之间的角度差。例如,如果具有六个窗口且最大和最小倾斜角度为150度和30度,两个相邻窗口之间的角度差可以被定义为(150-30)/5=24度。在一些实施例中,两个相邻窗口之间的角度差不是常量,而是取决于两个相邻窗口在窗口序列中显示的位置。例如,在靠近纸牌扇顶部(例如,更近被打开的)的两个相邻窗口之间的角度差大于靠近纸牌扇底部的两个相邻窗口之间的角度差。同样地,在触摸屏112上显示在一起的浏览器窗口可能不同,以使更近被打开的窗口大于之前被打开的窗口(例如,已经被打开一段时间的窗口)。
[0113] 考虑到一个纸牌游戏的浏览器窗口,用户可以以更加直观的方式控制他们。例如,用户可以对浏览器窗口使用手指滑动的手势来关闭窗口。如图3D和图3E所示,响应用户朝向触摸屏112顶部的手指滑动手势,窗口“B”被动态地从纸牌扇中移出,然后用户界面300D动态地变换到用户界面300E。需要注意的是,用户界面300E与用户界面300C相类似,因为两个用户界面都包含两个窗口。与向触摸屏添加新的窗口一样,现有窗口从触摸屏中的移除同样激发更新每个浏览器窗口的显示位置(包括方位)和可选地各自的显示大小。在一些实施例中,设备100总是保持一个窗口在触摸屏112的中心位置(例如,图3D的用户界面300D中被窗口“B”占用的位置)。因此,当窗口“B”从触摸屏中被移除时,设备100引起窗口“C”去占据窗口“B”留下的位置。
[0114] 在一些实施例中,设备100为在触摸屏112上显示浏览器窗口设置多个限制。例如,具有在触摸屏112上一起显示浏览器窗口的最大数量(如4个)。如果浏览器应用程序147具有多于四个被打开的窗口,用户可以运用手指运动在触摸屏112上滚动这些被打开的窗口。图3F为描述了响应向左手指滑动手势324,纸牌扇浏览器窗口的运动的用户界面300F。在这种情况下,设备100以被向左手指滑动手势限定的第一角度,保持相互之间的相对位置,以纸牌扇的方式逆时针方向旋转窗口。同样地,相应于向右手指滑动手势,设备100以被向右手指滑动手势限定的第二角度,保持相互之间的相对位置,以纸牌扇的方式顺时针旋转窗口。
[0115] 可选地,响应在触摸屏上检测的弧形手指运动,设备100旋转浏览器窗口纸牌扇。图3G为描述了为响应围绕软键的顺时针手指运动,以纸牌扇的方式顺时针旋转浏览器窗口的示例性的用户界面300G。换言之,该圆形手指运动模仿棘轮操作,以使设备100以与圆形手指运动相一致的方向旋转纸牌扇方的式窗口,并保持相互之间的相对位置,且当圆形手指运动终止时(如,基于检测手指抬起事件)停止旋转。
[0116] 在一些实施例中,设备100设置一个时限以区分手指点击手势的不同持续时间。图3I为包括3个浏览器窗口“A”、“B”、“C”的示例性的用户界面300I。为了响应检测到用户手指点击手势328,设备100确定手指点击手势的持续时间(例如,手指落下事件和手指抬起事件的时间间隔)。如果手指点击手势少于预定的时间间隔(如1秒),设备100将手指点击手势解释为将手指点击的窗口到扩大它的全尺寸。换言之,手指点击手势指示用户想访问显示在浏览器窗口中的网页,触发浏览器应用程序从网页服务器检索网页的更新版本。如果手指点击手势的持续时间等于或者大于预定的时间间隔,设备100将手指点击手势识别为将浏览器窗口从纸牌扇的方式合拢为纸牌堆叠的方式,如3J中的用户界面300J中所示。对比用户界面300D和用户界面300J,值得注意的是,以纸牌扇的方式显示的窗口(例如,用户界面
300D)具有不同的取向角,而以纸牌堆叠的方式显示的窗口(例如,用户界面300J)具有相同的取向角。
[0117] 在这些窗口以纸牌堆叠的方式组织后,用户可以通过应用不同的手指滑动手势来达到不同的效果。例如,响应垂直方向的手指滑动手势330,设备100从触摸屏112上关闭所有堆叠的窗口。而响应水平方向上的手指滑动手势332(例如,与手指滑动手势330垂直),设备100动态地恢复成用户界面300I,在用户界面300I中这些窗口显示成纸牌扇的方式。
[0118] 上面的描述阐述了运行在设备100上的同一应用程序的不同实例相对应一组窗口。图3K是一种示例性的用户界面300K,用户界面300K中包括与不同应用程序的实例相对应的窗口,例如,浏览器应用程序、视频应用程序、以及图像应用程序。要注意的是,上述的与浏览器窗口相关的相同操作启示也适用于与不同应用程序相关的一组窗口。例如,长时间的手指点击手势(如,1.5秒)可以动态地将不同应用程序相关的窗口从纸牌扇的方式合并为纸牌堆叠的方式。然后用户可以使用垂直手指滑动手势关闭所有这些窗口(以及与这些窗口相关的应用程序)。
[0119] 在一些实施例中,设备100会限制一起显示在触摸屏112上的窗口的总数量。在这种情况下,设备100可以提供可视化的提示(如滚动条)来指出哪组窗口目前显示在触摸屏112上。如图3K所示,滚动条334可以是具有可移动的拨号图标336的圆弧形,该可移动的拨号图标336指示目前显示在触摸屏112上的窗口的位置。换句话说,当用户运用向右的手指滑动手势时,设备100带动窗口从触摸屏112的左侧朝向顺时针旋转,然后可移动的拨号图标336相应地向左移动。当用户使用向左的手指滑动手势时,设备100带动窗口从触摸屏112的右侧逆时针旋转,然后可移动的拨号图标336相应地向右移动。
[0120] 图4A-4E为一些实施例中描述控制用户界面对象的方法的流程图。方法600在具有显示器和触敏表面的电子设备上执行。在一些实施例中(例如,图1A中的便携式电子设备100),显示器为一个触摸屏,且触敏表面位于显示器上。在一些实施例中(例如,图2A中的设备200),显示器与触敏表面是分离的。方法600中的一些操作可以结合使用和/或一些步骤的顺序可以被改变。
[0121] 如下所述,方法600提供一种控制触敏表面上的用户界面对象的直观方式。该方法减少了用户在控制用户界面对象时认知上的负担,因此能够产生更有效的人机交互。对于电池供电的计算机设备,使得用户更快地控制触敏显示器上的用户界面对象,并能够有效地节省电量,从而增加电池的使用时间。
[0122] 步骤602:设备选择(602)一个或多个需要在触摸屏上渲染的窗口以及与选择的窗口相关的显示顺序。在一些实施例中,这些选择的窗口对应于运行在设备上的一个或多个应用程序的实例。例如,图3I描述了包含相应于浏览器应用程序147的三个浏览器窗口的用户界面300I,而图3K描述了包含分别相应于3个不同应用程序的3个窗口的用户界面3K。这些窗口的显示顺序由这些窗口在设备上打开时间顺序确定,以使较新(打开)的窗口显示在旧窗口的上面。然后,步骤604:设备至少部分地根据选择的窗口的显示顺序和数量确定每个选择的窗口相对显示位置。图3B-3D描述了当窗口总数从1和增加到3个时同一窗口“A”具有不同显示位置。最后,步骤606:根据选择的窗口以纸牌扇方式的相对显示位置(例如,图3D中的用户界面300D),设备在触摸屏上渲染选择的窗口。正如上面看到的,选择的窗口可以是与运行在电子设备上的不同应用程序的实例相对应(如,图3K中的用户界面300K),或者与同一应用程序相对应(如,图3D中的用户界面300D)。
[0123] 设备检测(614)向选择的窗口中增加一个新窗口的用户指令,例如,手指分别点击图3B、3C、3D中的314、316、318。响应该用户指令,设备更新(618)选择的窗口的总数(从图3B中的一个,更新到图3C中的两个,再更新到图3D中的3个),并在更新后的选择的窗口的总数在预定范围内的情况下,更新(620)选择的窗口在触摸屏上的各自显示位置。例如,最小的预定范围是两个,最大的预定范围是无限大。在一些实施例中,一起显示在触摸屏上的窗口的总数具有一个上限(如5个),从而使这五个窗口在触摸屏上的显示位置固定。在一些实施例中,窗口总数的上限依赖于触摸屏是竖屏模式(例如,在这种情况下,设定最大范围为5)还是横屏模式(在这种情况下,设定最大范围为8)。最后,根据以纸牌扇方式更新的各自显示位置,设备在触摸屏上动态地渲染(622)新的窗口以及被选择的窗口(例如,图3C和3D)。
[0124] 如图4B所示,在一些实施例中,设备在触摸屏上检测(624)在所选择的窗口中的其中一个窗口上的手指滑动手势(例如图3D中的320)。响应(626)该手指滑动手势,设备从触摸屏上从触摸屏上移除(628)手指滑动的窗口(如图3E中的用户界面300E),并更新(630)剩余的选择窗口的总数。当更新后的剩余选择窗口的总数量在如上描述的预定范围内时,设备更新(632)剩余的选择窗口触摸屏上的各自显示位置。举例而言,当更新后的剩余选择窗口的总数量仍然大于可以一起显示在触摸屏上的最大窗口数量时,如果一些剩余选择窗口的位置保持不变,则设备不必更新他们的显示位置。最后,设备根据剩余选择窗口的各自更新后的纸牌扇方式的显示位置(例如,图3E中的用户界面300E),在触摸屏上动态地渲染(634)剩余选择窗口。
[0125] 如图4C所示,当设备在触摸屏上检测(636)到向左手指滑动手势时(如图3F),设备将选择的窗口以纸牌扇方式逆时针旋转(638)第一角度,该第一角度的大小由向左手指滑动手势确定,在旋转时选择的窗口保持相互之间的相对位置不变;当设备在触摸屏上检测(640)到顺时针的手指滑动手势时,设备将选择的窗口以纸牌扇方式顺时针旋转(642)第二角度,该第二角度的大小由向右手指滑动手势确定,在旋转时选择的窗口保持相互之间的相对位置不变。
[0126] 在一些实施例中,设备检测(644)到触摸屏上的弧形手指运动(例如,图3G中的326)。作为对弧形手指运动的响应,设备向弧形手指运行的方向(例如,图3G中的顺时针)以纸牌扇的方式旋转(646)选择的窗口,在旋转的过程中,保持他们之间的相对位置不变。在触摸屏上检测到(648)弧形手指运动终止后,设备停止(650)在触摸屏屏上旋转选择的窗口。在一些实施例中,该弧形手指运动需要发生在预定的区域内(例如,围绕图3G中的软键周围)。
[0127] 在一些实施例中,设备检测(652)触摸屏上的其中一个选择的窗口的手指点击手势(例如图3I中的328),然后确定(654)手指点击手势的时长。当手指点击手势的持续时间少于预定的时间间隔(如,1秒)时,设备将触摸屏上的这些选择的窗口替换为该手指点击的窗口的放大视图(也即,该用户的手指点击手势被解释为用户希望打开该手指点击的窗口)。当该手指点击手势的持续时长等于或大于预定的时间间隔时,设备动态地将这些选择的窗口的显示从纸牌扇的方式改变成纸牌堆叠的方式(例如,图3J中的用户界面300J)。注意,在选择的窗口以纸牌扇方式显示时,它们在触摸屏上以不同的方位角渲染;在选择的窗口以纸牌堆叠的方式显示时,它们在触摸屏上以相同的方位角渲染。
[0128] 在这些选择的窗口以纸牌堆叠的方式渲染后,设备检测(660)触摸屏上的选择的窗口的手指滑动手势(例如,图3J中的330和332),然后确定(662)手指滑动手势的方向。当手指滑动手势被确定为第一方向(例如,垂直向上移动的手势330)时,设备从触摸屏上移除这些选择的窗口;手指滑动手势被确定为第二方向时,也即大体上垂直于第一方向(例如,水平向右移动的手势332),设备将选择的窗口的显示从纸牌堆叠的方式动态地变回纸牌扇的方式。在一些实施例中,响应任意方向上的手指滑动手势,设备都将选择的窗口从触摸屏上移除。而响应手指点击手势(如图3J中的333),设备将选择的窗口从纸牌堆叠的方式动态地恢复成纸牌扇的方式。
[0129] 举例而言,图4A-4E中描述的操作可以被图1A和1B中示出的组件所执行。例如,手势的检测可以被事件分类器170、事件识别器180和事件处理器190执行。事件分类器170中的事件监控器171检测触摸屏112上的手势,而事件调度模块174将事件信息发送给应用程序136-1。在这种情况下,应用程序136-1包括用于更新显示在触摸屏112上的信息的方法和图形用户界面。应用程序136-1的事件识别器180将事件信息与相应的事件定义186相比较,来确定特定的手势是否被执行。当检测到预定的事件或子事件时,事件识别器189激活一个事件处理器190,该事件处理器与相应的手势检测相关联。事件处理器190可以利用或调用数据更新器176或对象更新器177来更新数据或文本显示区域和应用程序内部状态192。类似地,本领域技术人员很清楚如何基于显示在图1A和1B中的组件来执行其他处理过程。
[0130] 即使上述具体实施例中进行了描述,应当理解的是,尽管词语第一、第二等在这里被用于描述各种元件,这些元件不应当被这些术语限制。这些词语仅仅用于将一个元件与另一个元件区分开来。例如,第一接触可以被称为第二接触,而相似地,第二接触也可以被称为第一接触,而并没有离开被发明的范围。第一接触和第二接触都是接触,但它们是不同的接触。
[0131] 本发明具体实施例中用到的技术术语仅用于描述特定实施例,不能理解为对本发明的限定。正如如本发明具体实施例和权利要求中用到的,单数形式的“a”、“an”和“the”也可以表示复数形式,除非文中有明确的说明。还可以理解的是,术语“和/或”是指列出的相关项目的任意或所有可能组合。进一步可以理解的是,当术语"includes,"″including,"″comprises,"and/or"comprising,"被应用在说明书中时,说明状态特性、整数、步骤、操作、元件、和/或组件的存在,但不排除存在或增加一个或多个其他特性、整数、步骤、操作、和/或群组等。
[0132] 如本文所用,词语“如果”根据上下文可理解为“当”、“根据”、“为了确定”或者“为了检测”。类似地,短语“如果确定”或者“如果检测到【所述条件或事件】”也可根据语境理解为“根据确定”、“为了确定”、“根据检测【所述条件或事件】”或“为了检测【所述条件或事件】”。
[0133] 尽管一些附图中以特定的顺序指明了一些逻辑步骤,不依赖顺序的步骤可以重排,且可以结合其他步骤或者取消与其他步骤的联系。尽管一些重排或其他的分组被明确提出,其他的那些现有技术中的普通技术是显而易见的,因此没有列出可替代的详细清单。而且,应该意识到,这些步骤可以被硬件、固件、软件或它们之前的任意组合所实施。
[0134] 为了解释的目的,上面说明书结合具体实施例进行了详细的描述。然而,上面说明性的描述并不是穷尽的,也不对本发明具有限定作用。鉴于上面的说明,可以有许多修改和变化。选择和描述的这些实施例是为了最好的解释本发明的原理以及本发明的实际应用,因而使本领域其他技术人员能够很好地利用本发明和具有各种变形的实施例。