CN112055842A - 拖动手势动画 - Google Patents

拖动手势动画 Download PDF

Info

Publication number
CN112055842A
CN112055842A CN201980029214.2A CN201980029214A CN112055842A CN 112055842 A CN112055842 A CN 112055842A CN 201980029214 A CN201980029214 A CN 201980029214A CN 112055842 A CN112055842 A CN 112055842A
Authority
CN
China
Prior art keywords
user interface
interface element
user
path
determining
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.)
Pending
Application number
CN201980029214.2A
Other languages
English (en)
Inventor
约翰·霍福德
尼古拉斯·罗阿尔德
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN112055842A publication Critical patent/CN112055842A/zh
Pending legal-status Critical Current

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/04817Interaction 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 using icons
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

公开了用于使拖动手势动画化的方法、***和装置,包括在计算机存储介质上编码的计算机程序。在一个方面中,一种方法包括接收跨显示器沿着的用户引起的路径拖动用户界面元素的用户输入的动作。动作进一步包括跨显示器沿着用户引起的路径移动用户界面元素。动作进一步包括确定用户输入已经结束。动作进一步包括基于用户引起的路径和用户输入的速度来确定附加路径和用于用户界面元素沿着附加路径移动的速度。动作进一步包括以所确定的用于用户界面元素沿着附加路径移动的速度将用户界面元素沿着附加路径移动到静止位所。

Description

拖动手势动画
相关申请的交叉引用
本申请要求2018年5月8日提交的美国申请No.62/668,598的权益,其内容通过引用并入本文。
技术领域
本说明书涉及图形界面。
背景技术
图形用户界面是一种用户界面,其允许用户通过图形图标和视觉指示器与电子设备进行交互,而不是仅仅基于文本的输出、键入的命令标签或文本导航。
发明内容
与触摸屏交互的用户可以使用用户的手指跨屏幕速移(flick)对象。当用户触摸屏幕时,对象可能会跟随用户手指的路径。一旦用户从屏幕上已经释放他的手指,设备就可以通过以预定速度将对象移动到最终的静止位置来完成对象的移动。如果用户的手指的速度与预定速度不匹配,则设备对对象的移动和对象的用户移动可能出现断开且不自然。
为了给予设备控制的对象的移动平滑而自然的感觉,设备可以监视用户引起的对象移动的速度和轨迹。当用户从屏幕上释放用户的手指时,设备可以计算对象的速度。该设备可以使用该最终用户引起的对象速度来选择对象移动到其静止位置的速度。设备可以选择符合数个约束的对象移动特性,所述约束诸如对象的最大加速度、对象的最大速度以及设备将对象移动到静止位置的最大时间量。
当设备将对象移动到其静止位所时,对象的路径可以是三次样条,其包括用户从屏幕上释放用户的手指时对象的位所以及对象的静止位所。三次样条上的其他点可能特定于被移动的对象的类型。在一些情况下,路径可以是当用户从屏幕上释放用户的手指时对象的位所与静止位所之间的直线。
当设备将对象移动到静止位所时对象的速度可能对应于三次贝塞尔函数。对象的初始设备控制的速度可以是最终用户引起的速度,并且最终设备控制的速度可以是零。设备可以选择符合对象的最大加速度、对象的最大速度以及设备将对象移动到静止位置的最大时间量的三次贝塞尔函数。然后,设备以选择的速度沿着选择的路径移动对象。
根据本申请中描述的主题的创新方面,一种使拖动手势动画化的方法包括以下动作:由包括显示器的计算设备接收跨显示器沿着用户引起的路径拖动用户界面元素的用户输入;由计算设备跨显示器沿着用户引起的路径移动用户界面元素;由计算设备确定用户输入已经结束;响应于确定用户输入已经结束,基于以下来确定附加路径和用于用户界面元素沿着该附加路径移动的速度:(i)用户引起的路径,以及(ii)用户输入的速度;以及由计算设备,以所确定的用于用户界面元素沿着附加路径移动的速度沿着附加路径将用户界面元素移动到静止位所。
这些实施方式和其他实施方式均可以可选地包括以下特征中的一个或多个。动作进一步包括确定当用户输入结束时用户界面元素的位所。确定附加路径以及用户界面元素沿着附加路径移动的速度的动作是基于当用户输入结束时用户界面元素的位所。确定附加路径和用户界面元素沿着附加路径移动的速度的动作包括从预定路径和速度组中选择附加路径和速度。动作进一步包括确定用户界面元素的用户界面元素类型。确定附加路径和用户界面元素沿着附加路径移动的速度的动作是基于用户界面元素的用户界面元素类型。
动作进一步包括:由计算设备接收附加用户输入,该附加用户输入跨显示器沿着用户引起的路径拖动附加用户界面元素;由计算设备跨显示器沿着用户引起的路径移动附加用户界面元素;由计算设备确定附加用户输入已经结束;确定附加用户界面元素是不同的用户界面元素类型;响应于确定附加用户输入已经结束,基于以下来确定附加路径和用于用户界面沿着附加路径元素移动的不同速度:(i)用户引起的路径,(ii)附加用户输入的速度,以及(iii)附加用户界面元素是不同的用户界面元素类型;以及由计算设备以用户界面元素沿着附加路径移动的不同的速度沿着附加路径将附加用户界面元素移动到静止位所。确定附加路径和用于用户界面元素沿着附加路径移动的速度的动作包括基于用户引起的路径和用户输入的速度来确定静止位所。动作进一步包括确定用户引起的路径的距离不满足阈值距离;以及基于确定用户引起的路径的距离不满足阈值距离,确定静止位所是用户界面元素的原始位所。
动作进一步包括确定用户引起的路径的距离满足阈值距离;以及基于确定用户引起的路径的距离满足阈值距离,确定静止位所为除了用户界面元素的原始位所以外的位所。确定附加路径和用于用户界面元素沿着附加路径移动的附加速度的动作进一步基于用户界面元素的最大加速度、用户界面元素的最大速度和将用户界面元素沿着附加路径移动到静止位所的最大时间。该附加路径对应于三次样条,其包括静止位所和当用户输入结束时用户界面元素的位所。该速度对应于三次贝塞尔缓动函数。动作进一步包括确定在用户输入已经结束时的用户输入的速度。用户引起的路径是沿着由计算设备固定的路径。
根据本申请中描述的主题的另一个创新方面,一种用于使拖动手势动画化的方法包括下述动作:由计算设备在计算设备的图形用户界面上的第一位置中显示用户界面元素;响应于由计算设备接收到在第一位置处开始并在第一轨迹上移动的用户输入,沿着第一轨迹移动用户界面元素;以及响应于在第二位置处的用户输入的终止:由计算设备确定在第二位置处的用户界面元素的初始速率;由计算设备确定在第二位置处开始的并且至少部分地基于所确定的用户界面元素的初始速率的用户界面元素的第二轨迹;以及由计算设备沿着第二轨迹移动用户界面元素。
这些实施方式和其他实施方式都可以可选地包括以下特征中的一个或者多个。第二轨迹至少部分地基于一个或多个预定参数。预定参数包括以下中的一个或者多个:用户界面元素的最大速率、用户界面元素的最大加速率和第二轨迹的最大时间。动作进一步包括确定图形用户界面上的第三位置,以及在第三位置处终止第二轨迹。确定第二轨迹的动作包括确定到第三位置的距离,计算在所确定的距离内将初始速率减小为零所需的减速率,以及如果所计算的减速率大于或等于最大加速率,则以所计算的速率将减速度应用于用户界面元素。确定第二轨迹的动作进一步包括:如果所计算的减速率小于最大加速率:计算峰值速率,使得从初始速率到峰值速率以最大加速率的初始加速然后是从峰值速率到零以最大加速率的减速在第三位置处将到达零;以及如果峰值速率小于或等于最大速率,则从初始速率到峰值速率以最大加速率应用初始加速,并从峰值速率到零以最大加速率应用减速。
确定第二轨迹的动作包括:如果峰值速率大于最大速率,则从初始速率到最大速率以最大加速率应用初始加速,为中间距离维持最大速率,以及从峰值速率到零以最大加速率应用减速。计算中间距离,使得从峰值速率到零以最大加速率的减速在第三位置处将会到达零。确定第二轨迹的动作包括:如果初始速率在远离第三位置的方向上,则在从零应用初始加速之前,从初始速率到零以最大加速率应用第一减速。如果第一位置和第二位置之间的距离在阈值距离以下,则确定第三位置位于第一位置处。沿着第一轨迹移动用户界面元素包括:基于用户输入的位所计算锚点;以及使用三次贝塞尔缓动函数基于锚点沿着相应的三次样条移动用户界面元素的一个或多个点。
此方面的其他实施方式包括记录在计算机存储设备上的对应***、装置和计算机程序,每一个都被配置成执行所述方法的操作。
本申请中描述的主题可以具有下述优点中的一个或多个。计算设备可以以受控和平滑的方式将对象移动到静止位所。为设备移动的不同对象创建动画的开发人员可以通过指定设备控制的对象的最大加速度和速度以及对象的设备控制的移动的最大时间来创建平滑的动画。通过这些约束,设备可以确定对象速度的三次贝塞尔函数,该速度以受控方式将对象移动到静止位所。
在本说明书中描述的主题的一种或多种实施方式的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,本主题的其他特征、方面和优点将变得显而易见。
附图说明
图1图示用于动画化和完成拖动手势的示例界面。
图2图示用于动画化和完成拖动手势的示例***。
图3图示用于动画化和完成拖动手势的示例过程。
图4图示计算设备和移动计算设备的示例。
在附图中,相似的附图标记自始至终表示对应的部分。
具体实施方式
图1图示用于动画化和完成拖动手势的示例界面。简要地,并且如下面更详细地描述的,用户正在与包括触摸屏106的计算设备100进行交互。用户利用用户的手102将图标104从位所108移动到位所110。计算设备100可以将图标限制到触摸屏106的边缘。在这种情况下,计算设备可以以与用户的手102的移动匹配的平滑且受控的方式将图标104从位所110移动到位所112。图1的一些标记可能包括字母(例如,a、b、c等),并且可能在不同时间表示同一对象的不同实例。例如,100a和100b都表示相同的计算设备,可以称为计算设备100、计算设备100a或计算设备100b。作为另一示例,手指102a和手指102b可以表示在不同的时间点的相同的手指。
计算设备100可以是电话、平板电脑、智能手表、膝上型计算机、台式计算机或具有显示器的任何其他类型的计算设备。用户可以通过触摸屏106、鼠标、手写笔或任何其他类型的定点设备与计算设备进行交互。在图1所示的示例中,用户通过触摸触摸屏106与计算设备100进行交互。计算设备100可以在触摸屏106上显示几个图标。例如,计算设备100可以包括浏览器图标、电子邮件图标、电话图标、日历图标、联系人和地图图标104。显示在触摸屏106上的图标形成计算设备100显示的图形用户界面的部分。这些图标是用户界面元素的示例。用户可以选择图标以打开相应的应用。计算设备100可以将图标的放置限制在触摸屏106的周边,使得触摸屏106的内部保持开放以供用户查看打开的应用。
地图图标104a可以位于触摸屏106上的位所108。位所108可以被称为地图图标104a的第一位置。用户可能希望将地图图标104a从位所108移动到位所112。用户可以使用手指102a触摸位所108处的触摸屏106a以发起地图图标104a的移动。用户可以沿着路径112拖动手指102a,并在位所110处将手指102b从屏幕上释放。位所110可以被称为地图图标104a的第二位置。当用户沿着路径112拖动手指102时,在用户移动手指102时计算设备100a可以通过沿着路径112移动地图图标104a来进行响应。手指102a沿着路径112的运动可以被称为作为第一轨迹。
计算设备100a可以计算沿着路径112的手指移动的速度116、路径112的距离114、路径112的方向115和沿着路径112的手指移动的加速度118。计算设备100可以基于速度116、距离114、方向115和加速度118来确定位所112是地图图标104b的静止位置。例如,因为计算设备100a可能将图标的放置限于触摸屏106a的周边,计算设备100a可以确定方向115朝向位所112,并且距离114大于阈值距离以发起从位所108到位所112的移动。位所112可以是称为地图图标104a的第三位置。作为另一示例,在速度116较大的情况下,计算设备100a可以将距离114与较低的阈值距离进行比较。较大的速度116可以指示用户打算将地图图标104a从位所108移动到位所112的更大可能性,因此计算设备100a可以将距离114与较低的阈值距离进行比较。
计算设备100b可以使用速度116、距离114、加速度118和方向115中的一个或多个来生成地图图标104b的路径120。基于速度116、距离114、加速度118和方向115中的一个或多个,计算设备100b可以生成速度126和加速度124。针对地图图标104b沿着路径120的所生成的运动可以被称为第二轨迹。计算设备100b可以计算速度126和加速度124以符合一个或多个时间、速度和加速度限制。例如,计算设备100b可以为地图图标104b从位所110移动到位所112设置200毫秒的限制。计算设备100b还可以为速度126和加速度124设置限制。计算设备100b计算满足时间、速度和加速度限制的速度126和加速度124。在一些实施方式中,时间、加速度和速度限制可以由相应应用程序的开发人员来设置,并且用户可以操纵的每种类型的图形元素可以具有不同的时间和速度限制。
在一些实施方式中,当计算速度126和加速度124时,计算设备100b可以从预定速度和加速度中进行选择。例如,计算设备100b可以具有六个预定速度和加速度,并且每个可以根据可以由开发人员设置的偏好进行排名。计算设备100b可以将路径120的距离122和时间限制应用于预定速度和加速度的第一速度和加速度。如果第一速度和加速度能够满足时间限制,则计算设备100b可以选择第一速度和加速度作为路径120的速度126和加速度124。如果第一速度和加速度不满足时间限制,则计算设备100b可以比较附加速度和加速度,直到识别满足时间限制的速度和加速度为止。
在一些实施方式中,在当用户从显示器106a移开手指102b时的图标104b的速度116也可以是确定路径120的速度和加速度的因素。例如,计算设备100b可以将位所110处的地图图标104b的速度确定为初始速度126。如果位所110处的地图图标104b的速度在速度限制内,则计算设备100b可以计算加速度以满足地图图标104b在位所112处停止的时间限制。在一些实施方式中,计算设备100b可以将地图图标104b在位所110处的速度116应用于预定速度和加速度。计算设备100b可以识别满足时间限制的速度和加速度,其中速度最接近地图图标104b在位所110处的的速度116。
在一些实施方式中,计算设备100b可以无急动或以恒定的加速度移动地图图标。在这种情况下,计算设备100b可以基于位所110处的地图图标104b的距离122和速度116来计算加速度124。加速度124可以使得地图图标104c的速度在位所112处为零。在这种情况下,在加速度124的值为负的情况下,则加速度124可以等效地称为减速度或负加速度。
在一些实施方式中,不同类型的图形元素可以具有不同的速度和加速度限制。例如,较大的图标可能具有比较小的图标更低的加速度限制,以给用户较大的图标更难以移动的印象。较小的图标可能看起来更明亮并且具有更高的加速度限制。地图图标104可以具有比下拉菜单更高的加速度和速度限制。
在上面的示例中,地图图标104可以位于显示器106周围的不同地点。地图图标104可以位于显示器106周边周围的位所108、位所112或其他位所处。其他用户界面元素可能限于两个位所。例如,下拉菜单可能限于两个位所。第一位所可以关闭并且不在显示器106上。第二位所可以打开。用户可以通过从显示器106的边缘向上或向下轻扫用户的手指102来打开下拉菜单。
用户从显示器106的边缘拖动打开的菜单。计算设备100计算用户的手指102已经跨显示器106移动的距离以及用户的手指102在用户从显示器106移开用户的手指102时正在行进的速度。
计算设备100基于用户的移动来确定是否打开菜单。计算设备100基于用户的手指102的速度来计算距离阈值。如果用户的手指102的距离超过该距离阈值,则计算设备100打开下拉菜单。较高的速度可以对应于较低的距离阈值。如果用户的手指以每秒10厘米移动,则距离阈值可能为2厘米。如果用户的手指以每秒3厘米移动,则距离阈值可能是4厘米。在一些实施方式中,距离阈值可以是下拉菜单用于打开的总距离的百分比。例如,如果用户的手指以每秒三厘米移动,则距离阈值可以是全开距离的百分之五十,或者如果用户的手指以每秒十厘米移动,则距离阈值可以是全开距离的百分之二十。
如果用户的移动的距离大于距离阈值,则计算设备102打开菜单。计算设备102访问下拉菜单的运动参数。参数可以包括计算设备102完成菜单打开的最大时间和下拉菜单的最大加速度。计算设备102可以从几种不同的移动中选择以完成菜单打开。可以对移动进行排名,使得计算设备102选择满足最大时间和最大加速度参数的排名最高的移动。每个预定移动可以包括不同的分段。初始分段可以是减速分段,然后是恒速分段,然后是另一个减速分段。在最大时间约束可能需要计算设备102从当用户移开用户的手指时的最终速度开始增加菜单速度的情况下,初始分段可以是加速度分段。
在一些实施方式中,计算设备102可以通过将运动参数应用于所计算的速度和剩余距离来计算用于完成菜单打开的菜单速度。计算设备102可以在给定下述的情况下来计算菜单的加速度:(i)当用户从显示器106上移开用户的手指时,也作为菜单速度的用户的手指的速度;(ii)用于菜单打开的剩余的距离;以及(iii)当菜单到达打开点时菜单速度为零的要求。如果计算的加速度小于最大加速度,则计算设备102在打开菜单的同时将菜单从当用户将用户的手指移开时菜单的速度减速到零。在其中加速度恒定的这种计算可能在开发人员希望最小化急动的情况下是有用的。
如果用户的移动的距离小于距离阈值,则计算设备102关闭菜单。菜单关闭的移动可能类似于打开菜单的移动。计算设备102可以计算当用户移开用户的手指时的菜单速度以及用户移动菜单的距离。计算设备102可以使用这两个参数,并将它们应用于菜单的加速度和时间约束。计算设备102可以基于菜单的速度、行进的距离、最大加速度和最大时间来选择预定运动曲线。在一些实施方式中,计算设备102可以在将菜单返回到关闭位置之前继续在打开方向上移动菜单以将菜单减速到停止。在用户移开用户的手指时菜单可能正快速移动的情况下,此操作可能会提供平滑关闭的外观。
在一些实施方式中,用户可以使用双击或双轻敲来打开应用。例如,用户可以双轻敲地图图标104以打开地图应用。在一些实施方式中,用户可以在二维中移动地图图标104。在一些实施方式中,计算设备102可以将地图图标104和其他用户界面元素的静止位所限制在固定网格上的位所。在一些实施方式中,一个以上的图标或用户界面元素可以不占据显示器106上或固定网格中的相同位所。在用户对图标做手势以占据与另一个图标相同的位所的情况下,计算设备102可以使用各种准则来找到该图标的不同的静止位所。
图2图示用于动画化和完成拖动手势的示例***200。简要地,并且如下面更详细地描述,***200检测到用户跨***200的显示器205移动用户界面元素。通过对用户界面元素的用户移动用户可以将用户界面元素朝向静止位所移动而无需将用户界面元素一直移动到静止位所。***200以作为用户移动的扩展的受控和平滑的方式完成用户界面元素到静止位所的移动。
***200包括与输入设备210和图形界面生成器通信的显示器205。图形界面生成器215可以生成用于在显示器205上显示的图形用户界面。图形界面生成器215可以生成各种用户界面元素以提供给显示器205。用户可以通过输入设备210与用户界面元素进行交互。用户界面元素可以是图标、菜单、窗口或用户可移动的任何其他类型的对象。输入设备可以是触摸屏、鼠标、手写笔或任何其他类型的相似输入设备。
***200包括路径检测器220,其被配置成检测用户沿着其移动用户界面元素的路径。一些用户界面元素可能具有***200限制的路径。例如,***200可以限制下拉菜单的路径。***200可以将菜单限制为仅在与显示器205的边缘平行的路径中在显示器205上向上和向下行进。诸如图标的其他用户界面元素可能没有受限的路径。例如,用户可能能够沿着圆形路径在显示器205周围移动图标。在一些示例中,用户界面元素可以精确地跟踪释放之前用户输入的确定的移动,而在其他示例中,用户输入可以基本上跟踪释放之前用户输入的确定的移动。
***200包括速度检测器225,该速度检测器225被配置成在用户在显示器205周围移动用户界面元素时检测用户界面元素的速度。在一些实施方式中,***200可以限制用户可以移动用户界面元素的速度。例如,***200可以限制较大的用户界面元素的速度,以提供较大的用户界面元素“较重”的错觉。在这种情况下,***200可以不限制较小的用户界面元素的速度或为较小的用户界面元素提供较高的最大速度。在一些实施方式中,***200可以不限制用户可以移动任何用户界面元素的速度。
该***包括加速度检测器230,该加速度检测器230被配置成当用户在显示器205周围移动用户界面元素时检测用户界面元素的加速度。在一些实施方式中,***200可以限制用户可以改变用户界面元素的速度的加速度。例如,***200可以限制较大的用户界面元素的加速度,以提供较大的用户界面元素“较重”的错觉。在这种情况下,***200可以不限制较小的用户界面元素的加速度或为较小的用户界面元素提供较高的最大速度。在一些实施方式中,***200可以不限制用户可以改变任何用户界面元素的速度的加速度。
路径检测器220还被配置成检测用户输入停止的点。在一些实施方式中,用户输入的停止可以是路径检测器220向***300的下一阶段提供识别检测到的路径、检测到的速度和检测到的加速度的数据的触发。
***200的下一阶段包括阈值比较器235,该阈值比较器235被配置成确定***200是否应在用户与用户界面元素交互之前将用户界面元素移回到原始位所,或者***200是否应将用户界面元素移动到新的静止位所。阈值比较器235与静止位所识别器240和用户界面元素类型识别器245通信,以确定将用户界面元素移动到哪里。
用户界面元素类型识别器245将用户界面元素与用户界面元素类型存储250进行比较,并识别用户操纵的用户界面元素的类型。静止位所识别器240可以基于用户元素界面类型来识别用户界面元素的静止位所。例如,下拉菜单可能具有一个静止位所。静止位所可以是示出位置处的菜单。下拉菜单的原始位所可能被隐藏。作为另一示例,图标可以具有多个可能的静止位所以及在用户与图标交互之前该图标所位于的原始位所。
在一些实施方式中,静止位所识别器240可以使用所识别的路径、速度和加速度来识别静止位所。静止位所识别器可以基于用户输入停止时的速度和路径的方向来推断路径。例如,用户可能正在以每秒十厘米的速度将用户界面元素朝向显示器205的拐角移动。基于该速度,静止位所识别器240可以确定用户界面元素的静止位所是显示器205的拐角。作为另一个示例,用户可以以每秒一厘米将用户界面元素朝向显示器205的拐角移动。基于该速度,静止位所识别器240可以确定用户界面元素的静止位所是沿着从用户的路径推断的路径更远一厘米。作为另一个示例,用户可能正在以每秒一厘米的速度将用户界面元素朝向显示器205的拐角移动。用户引起的路径的长度为五毫米。基于这些参数,静止位所识别器240可以确定用户界面元素的静止位所是在用户移动用户界面元素之前用户界面元素的原始位所。
阈值比较器235确定用户是否已经将用户界面元素移动超过阈值距离,使得***200应将用户界面元素移动到静止位所而不是返回到原始位所。阈值比较器235可以使用用户界面元素的原始位所、所识别的用户界面元素的静止位所、用户引起的路径的距离以及到静止位所的剩余距离。阈值比较器235可以访问存储在阈值距离存储255中的阈值距离。如果阈值比较器235确定用户引起的路径的长度大于阈值距离,则***200将用户界面元素移动到静止位所。如果阈值比较器235确定用户引起的路径的长度小于阈值距离,则***200将用户界面元素移回到静止位所。
在一些实施方式中,阈值比较器235可以基于用户界面元素的速度来调整阈值距离。例如,如果用户界面元素的用户引起的速度为每秒十厘米,则阈值距离可以为一厘米。如果用户界面元素的用户引起速度为每秒一厘米,则阈值距离可以为五厘米。
在一些实施方式中,阈值距离可以是基于原始位所和静止位所之间的距离的比率。例如,阈值距离可以是静止位所和原始位所之间的距离的一半。如果用户引起的路径的距离小于静止位所与原始位所之间的距离的一半,则***200将用户界面元素移回到原始位所。如果用户引起的路径的距离大于静止位所与原始位所之间的距离的一半,则***200将用户界面元素移动到静止位所。
***200前进到下一阶段,以确定***将移动用户界面元素的路径。下一阶段包括路径计算器260、速度计算器265和加速度计算器270。路径计算器260被配置成计算***200移动用户界面元素的路径。速度计算器265被配置成计算在***200沿着计算出的路径移动用户界面元素时用户界面元素的速度。加速度计算器270被配置成计算在***200沿着计算出的路径移动用户界面元素时用户界面元素的加速度。
路径计算器260计算***200移动用户界面元素的路径。在***200将用户界面元素移动到新的静止位所的情况下,所计算的路径是静止位所与当用户输入停止时用户界面元素的位所之间的最短距离。在***200将用户界面元素移动到原始位所的情况下,计算出的路径是原始位所与当用户输入停止时用户界面元素的位所之间的最短距离。在一些实施方式中,路径可以弯曲以使用户界面元素绕着显示器205上的其他图形界面元素移动。
速度计算器265和加速度计算器270基于在用户输入结束时用户界面元素的速度、到静止位所的剩余距离以及对于被存储在最大速度、加速度和时间存储275中的移动的约束来计算用户界面元素的速度和加速度以用于沿着计算的路径移动。在一些实施方式中,速度计算器265和加速度计算器270对***200应用移动用户界面元素到静止位所的最大时间量和最大加速度。例如,速度计算器265和加速度计算器270可以计算沿着所计算的路径的用户界面元素的恒定的加速度。沿着所计算的路径的初始速度可以是用户界面元素在用户输入结束时的速度,而最终速度在静止位所处为零。只要***200移动用户界面元素的时间小于最大时间约束,加速度就可以是恒定的。在一些实施方式中,约束还可以包括最大速度。约束可以由与最大加速度、最大时间和最大速度中的一个或多个相对应的一个或多个预定参数来定义。
在一些实施方式中,速度计算器265和加速度计算器270可以从预定速度和加速度曲线中选择。预定速度和加速度曲线可以存储在速度和加速度曲线存储280中。速度计算器265和加速度计算器270可以将用户界面元素的最终用户引起的速度、最大时间约束和最大加速度约束应用于预定的速度和加速度曲线。可以对预定速度和加速度曲线进行排名,使得如果较高排名的曲线满足约束,则***200将选择该较高排名的曲线。速度计算器265和加速度计算器270可以将用户界面元素的最终用户引起的速度、最大时间约束和最大加速度约束应用于最高排名的曲线。如果最高排名的曲线不符合约束,则速度计算器265和加速度计算器270将约束应用于下一个最高排名的曲线,直到找到符合约束的预定曲线。在一些实施方式中,存在六个预定速度和加速度曲线。
每个预定曲线可以包括一个或多个不同的分段。每个分段可以选自加速分段、恒定速度分段和减速分段。排名第一的曲线可以包括例如加速度分段、恒定速度分段和减速度分段。加速度分段可以包括从最终用户引起的速度到最大速度以最大加速度的加速。恒定速度分段可以将速度维持在最大速度。减速度分段可以包括从最大速度到零以最大加速度的负加速。如果排名第一的曲线满足例如最大时间的约束,并且如果到静止位所的剩余距离足以完成曲线,则可以选择排名第一的曲线。
排名第二的曲线可以仅包括例如恒定速度分段和减速度分段。如果排名第一的曲线不满足约束,则可以选择排名第二的曲线。例如,如果最终用户引起的速度等于最大速度并且排名第一的曲线将使速度超过最大速度处,排名第二的曲线可以被选择。恒定速度分段可以维持以最大速度的速度。减速度分段可以包括从最大速度到零以最大加速度的负加速。如果排名第二的曲线满足例如最大时间的约束并且如果到静止位所的剩余距离足以完成曲线,则可以选择排名第二的曲线。
如果排名第一和第二的曲线不满足约束,则可以选择排名第三的曲线。例如,如果排名第一的曲线或排名第二的曲线所需的时间超过最大时间,则可以选择排名第二的曲线。排名第二的曲线可以仅包括例如加速度分段和减速度分段。加速度分段可以包括从最终用户引起的速度到峰值速度以最大加速度的加速。减速度分段可以包括从峰值速度到零以最大加速度的负加速。峰值速度小于或等于最大速度。如果排名第三的曲线满足例如最大时间的约束并且如果到静止位所的剩余距离足以完成曲线,则可以选择排名第三的曲线。
如果排名第一、第二和第三的曲线不满足约束,则可以选择排名第四的曲线。例如,如果排名第一的曲线、排名第二的曲线或排名第三的曲线所需的时间超过最大时间,则可以选择排名第四的曲线。排名第四的曲线可以仅包括例如减速分段。减速度分段可以包括从峰值速度到零以最大加速度的负加速。如果排名第三的曲线满足例如最大时间的约束并且如果到静止位所的剩余距离足以完成曲线,则可以选择排名第四的曲线。在一些实施例中,减速分段可以包括从峰值速度到零以高于最大加速度的加速率的负加速,以便满足最大时间约束和到静止位所的剩余距离中的一个或两个。
如果最终用户引起的速度是在远离静止位所的方向上,则可以选择排名第五或第六的曲线。排名第一和第六的曲线可以包括附加初始减速度分段。初始减速度分段可以包括在从最终用户引起的速率到零以最大加速度的负加速。在初始减速为零之后,排名第五和第六的曲线包括朝向静止位所的加速度。排名第五和第六的曲线分别对应于排名第一和第三的曲线,并带有附加初始减速分段。
在一些实施方式中,对于每种类型的用户界面元素,诸如沿着路径行进的最大时间和最大加速度的约束可能不同。例如,下拉菜单可能具有八百毫秒的沿着路径行进的最大时间、每平方秒一厘米的最大加速度和每秒五厘米的最大速度。图标可以具有五百毫秒的沿着路径行进的最大时间、每平方秒二厘米的最大加速度以及每秒七厘米的最大速度。
在一些实施方式中,对于每种类型的用户界面元素,预定速度和加速度曲线可以不同。例如,下拉菜单可以具有六个预定的速度和加速度曲线。图标可以具有六个不同的预定速度和加速度曲线,其中至少一些可以或可以不与下拉菜单的预定速度和加速度曲线重叠。
用户界面元素移动器285以由速度和加速度计算器265和270识别的速度和加速度沿着路径计算器260识别的路径移动用户界面元素。用户界面元素移动器285移动用户界面元素并将移动数据提供给图形界面生成器215以呈现在显示器205上。
图3图示用于动画化和完成拖动手势的示例过程300。通常,过程300接收跨显示器移动用户界面元素的用户输入。过程300以平滑和受控的方式完成用户界面元素到静止位所的移动。处理300将被描述为由包括一个或多个计算机的计算机***执行,例如,如图1所示的***100,或者如图2中所示的***200。
***接收用户输入,该用户输入跨显示器沿着用户引起的路径拖动用户界面元素(310)。例如,用户可以使用用户的手指从显示器的顶部拖动下拉菜单。在一些实施方式中,由用户引起的路径由***定义,就如用户下拉菜单时的情况一样。在一些实施方式中,用户引起路径是由用户定义的自由格式的路径,就如用户跨屏幕移动图标时的情况一样。***跨显示器沿着用户引起的路径移动用户界面元素(320)。例如,响应于用户输入,***移动下拉菜单以跟随用户输入拖动。
***确定用户输入已经结束(330)。例如,用户将用户的手指从显示器上移开。在一些实施方式中,当用户输入结束时,***确定用户界面元素的位所。例如,下拉菜单可能距显示器顶部两厘米。在一些实施方式中,***确定用户引起的路径的长度。例如,***确定用户将下拉菜单移动了两厘米。
响应于确定用户输入已经结束,***基于(i)用户引起的路径和(ii)用户输入的速度来确定用户界面元素的附加路径和附加速度(340)。在一些实施方式中,***将用户引起的输入的长度与距离阈值进行比较。如果用户引起的输入的长度满足距离阈值,则***会将用户界面元素移动到与用户界面元素最初所在的位所不同的位所。例如,如果用户将下拉菜单移动了二厘米并且距离阈值是一厘米,则***将打开下拉菜单。如果用户引起的输入的长度不满足距离阈值,则***在用户与用户界面元素交互之前将用户界面元素返回到用户界面元素的原始位所。例如,如果用户将下拉菜单移动两厘米并且距离阈值是三厘米,则***将关闭下拉菜单。
在一些实施方式中,***基于在用户停止与用户界面交互的点处的用户界面元素的速度并且基于用户移动用户界面元素的距离来确定是将用户界面元素移动到原始位所还是除了原始位所以外的位所。例如,如果用户在用户以每秒一厘米的速度移动用户界面元素两厘米之后停止移动用户界面元素,则***可以将用户界面元素返回到原始位所。如果用户停止以每秒三厘米的速度移动用户界面元素,则***可以将用户界面元素移动到除了原始位所以外的其他位所。
在一些实施方式中,***基于当用户输入结束时用户界面元素的位所来确定用户界面元素的附加路径和附加速度。例如,***可能会开始在用户移开用户的手指时下拉菜单所位于的位所处移动下拉菜单。
在一些实施方式中,***从预定路径和速度组中确定用户界面元素的附加路径和附加速度。例如,开发人员可以为***提供六个不同的预定速度曲线,供***在选择路径的预定速度曲线时使用。在一些实施方式中,***可以取决于用户界面元素的类型从不同的预定速度曲线中进行选择。例如,***可以针对下拉菜单从六个速度曲线中选择,并针对图标从六个不同速度曲线中选择。在一些实施方式中,预定路径和速度曲线以基于三次贝塞尔缓动函数的速度沿着三次样条移动。每种类型的用户界面元素可以具有不同的三次样条,该三次样条可以基于用户输入停止时用户界面元素的位所。另外,每种类型的用户界面元素都可以以不同的三次贝塞尔缓动函数的速度移动。在一些实施方式中,预定路径和速度中的每一个可以对应于不同的三次样条曲线和不同的三次贝塞尔缓动函数。在一些实施方式中,预定路径可以包括是弧线的附加路径。
在一些实施方式中,预定义路径和速度曲线取决于***类型可以是可适应的。例如,可以为具有九英寸对角线显示器的***定义预定义的路径和速度曲线。对于具有五英寸对角线显示器的***,该***可以按五比九的比率将预定路径的大小减小。对于具有十五英寸对角线显示器的***,该***可以按十五比九的比率将预定路径的大小增加。在这些示例中的任何一个中,可以使用相似的比率来调整速度曲线,或者可以不调整速度曲线。在一些实施方式中,***可以使用像素测量代替距离测量。
在一些实施方式中,取决于用户正在其中移动用户界面元素的窗口的窗口大小,预定路径和速度曲线可以是可适应的。例如,可以为十厘米乘八厘米的窗口定义预定义的路径和速度曲线。对于二十厘米乘二十厘米的窗口,***可以按一比二或三比五的比率将预定路径的大小增加。对于六厘米乘六厘米的窗口,***可以按五比三或四比三的比率将预定路径的大小减少。在这些示例中的任何一个中,可以使用相似的比率来调整速度曲线,或者可以不调整速度曲线。在一些实施方式中,比率可以基于窗口的面积或周长。在一些实施方式中,***可以使用像素测量而不是距离或面积测量。
在一些实施方式中,***选择符合时间和加速度的约束的速度曲线。例如,***选择速度曲线,该速度曲线使用户界面元素以用户输入停止的速度开始,在时间约束内到达静止位所,并维持在最大值以下的加速度。开发人员可以设置最大加速度和时间约束。预定速度曲线可以被排名。***可以选择满足约束的最高排名的速度曲线。在一些实施方式中,附加速度曲线的加速度是恒定的。在一些实施方式中,附加速度和附加速度的加速度不是恒定的。例如,速度可以在速度曲线的第一部分中增加,然后在速度曲线的第二部分中是恒定的,然后在速度曲线的第三部分中减小到零。
在一些实施方式中,***在用户输入结束时确定用户输入的速度。例如,用户跨显示器速移用户界面元素。当用户从显示器上释放用户的手指时,***将确定用户输入的瞬时速度。在一些实施方式中,用户输入的速度可以基于用户输入的最大速度、用户输入的中值速度、用户输入的算术平均值、用户输入的几何平均值或用户输入的最小速度。
***以附加速度沿着附加路径将用户界面元素移动到静止位所(350)。在一些实施方式中,用户可以沿着同一路径移动附加用户界面元素。在附加用户界面元素是不同类型或用户以不同速度移动附加用户界面元素的情况下,***然后可以为附加用户界面元素选择不同的速度。如果附加用户界面元素是不同的类型,则附加用户界面元素可以具有不同的约束。当由***控制时的附加用户界面元素的速度可能会不同,因为当用户输入停止时的附加用户界面元素的速度可能会不同。在一些实施方式中,当用户界面元素到达静止位所时,***可以添加后效果。例如,***可以取决于用户输入速率添加基于物理的弹跳,其中针对更高的用户引起的速度,用户界面元素的弹跳更多。
除以上描述之外,可以向用户提供控件,该控件允许用户就本文描述的***、程序或特征是否以及何时可以启用收集用户的信息(例如,关于用户的社交网络、社交动作或活动、专业、用户的偏好、或用户的当前位所的信息),以及用户是否被从服务器发送了内容或通信做出选择。此外,某些数据可以在它被存储或者使用之前以一种或多种方式被处理,使得个人可识别的信息被移除。例如,可以处理用户的身份,使得对用户来说不能够确定个人可识别的信息,或者用户的地理位所可以在获得位所信息的情况下被一般化(诸如到城市、邮政编码、或州级别),使得不能够确定用户的特定位所。因此,用户可以具有对收集关于用户的什么信息、如何使用该信息并且向用户提供什么信息的控制。
图4示出能够用于实现这里描述的技术的计算设备400和移动计算设备450的示例。计算设备400旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。移动计算设备450旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。此处示出的组件、它们的连接和关系以及它们的功能仅是示例,并不意味着限制。
计算设备400包括处理器402、存储器404、存储设备406、连接到存储器404和多个高速扩展端口410的高速接口408以及连接到低速扩展接口414和存储设备406的低速接口412。处理器402、存储器404、存储设备406、高速接口408、高速扩展端口410和低速接口412中的每一个通过各种总线互连,并且可以安装在通用主板上或以其他合适的方式安装。处理器402可以处理用于在计算设备400内执行的指令,包括存储在存储器404中或存储在存储设备406上的指令,以在诸如耦合到高速接口408的显示器416的外部输入/输出设备上显示用于GUI的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和各种类型的存储器。而且,可以连接多个计算设备,每个设备提供必要操作的部分(例如,作为服务器组、刀片服务器组或多处理器***)。
存储器404在计算设备400内存储信息。在一些实施方式中,存储器404是一个或多个易失性存储器单元。在一些实施方式中,存储器404是一个或多个非易失性存储单元。存储器404也可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
存储设备406能够为计算设备400提供大容量存储。在一些实施方式中,存储设备406可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、磁带设备、闪存或其他类似的固态存储器设备或设备阵列,包括存储区域网络或其他配置中的设备。指令可以存储在信息载体中。当指令由一个或多个处理设备(例如,处理器402)执行时,执行一种或多种方法,诸如上述那些方法。指令还可以由诸如计算机可读或机器可读介质的一个或多个存储设备(例如,存储器404、存储设备406或处理器402上的存储器)存储。
高速接口408管理用于计算设备400的带宽密集型操作,而低速接口412管理较低的带宽密集型操作。这种功能分配仅是示例。在一些实施方式中,高速接口408被耦合到存储器404、显示器416(例如,通过图形处理器或加速器),并且被耦合到可以接受各种扩展卡的高速扩展端口410。在实施方式中,低速接口412被耦合到存储设备406和低速扩展端口414。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口414可以例如通过网络适配器被耦合到诸如键盘、定点设备、扫描仪的一个或多个输入/输出设备或诸如交换机或路由器的网络设备。
如附图中所示,可以以多种不同形式来实现计算设备400。例如,其可以被实现为标准服务器420,或者多次在这样的服务器组中被实现。另外,其可以在诸如膝上型计算机422的个人计算机中实现。其也可以作为机架服务器***424的一部分实现。可替选地,来自计算设备400的组件可以与诸如移动计算设备450的移动设备中的其他组件组合。每个这样的设备可以包含计算设备400和移动计算设备450中的一个或多个,并且整个***可以由彼此通信的多个计算设备组成。
移动计算设备450包括处理器452、存储器464、诸如显示器454的输入/输出设备、通信接口466和收发器468以及其他组件。移动计算设备450还可以被设置有存储设备,诸如微驱动器或其他设备,以提供附加的存储。处理器452、存储器464、显示器454、通信接口466和收发器468中的每一个使用各种总线互连,并且数个组件可以安装在通用主板上或以适当的其他方式安装。
处理器452可以在移动计算设备450内执行指令,包括存储在存储器464中的指令。处理器452可以被实现为包括分离的和多个模拟和数字处理器的芯片的芯片组。处理器452可以提供例如用于移动计算设备450的其他组件的协调,诸如对用户接口的控制、由移动计算设备450运行的应用以及由移动计算设备450进行的无线通信。
处理器452可以通过控制接口458和耦合到显示器454的显示接口456与用户通信。显示器454可以是例如TFT(薄膜晶体管液晶显示器)显示器或OLED(有机发光二极管)显示器或其他合适的显示技术。显示接口456可以包括用于驱动显示器454以向用户呈现图形和其他信息的适当电路。控制接口458可以从用户接收命令并且将其进行转换以提交给处理器452。另外,外部接口462可以提供与处理器452的通信,使得实现移动计算设备450与其他设备的近距离通信。例如,外部接口462可以在一些实施方式中提供用于有线通信,或者在其他实施方式中提供用于无线通信,并且也可以使用多个接口。
存储器464在移动计算设备450内存储信息。存储器464可以被实现为以下中的一个或多个:一个或多个计算机可读介质、一个或多个易失性存储单元或者一个或多个非易失性存储单元。还可以提供扩展存储器474,并通过扩展接口472被连接到移动计算设备450,该扩展接口472可以包括例如SIMM(单列存储模块)卡接口。扩展存储器474可以为移动计算设备450提供额外的存储空间,或者还可以为移动计算设备450存储应用或其他信息。具体地,扩展存储器474可以包括用于执行或补充上述过程的指令,并且还包括安全信息。因此,例如,扩展存储器474可以被设置为用于移动计算设备450的安全模块,并且可以用允许安全使用移动计算设备450的指令来编程。此外,可以经由SIMM卡安全地提供安全应用,以及附加信息,诸如以不可入侵的方式在SIMM卡上放置识别信息。
存储器可包括例如闪存和/或NVRAM存储器(非易失性随机存取存储器),如下面所讨论的。在一些实施方式中,指令被存储在信息载体中,当该指令被一个或多个处理设备(例如,处理器452)执行时,执行一种或多种方法,诸如上述那些方法。指令也可以由一个或多个存储设备存储,诸如一个或多个计算机或机器可读介质(例如,存储器464、扩展存储器474或处理器452上的存储器)。在一些实施方式中,可以例如通过收发器468或外部接口462以传播的信号来接收指令。
移动计算设备450可以通过通信接口466无线通信,该通信接口在必要时可以包括数字信号处理电路。通信接口466可以在各种模式或协议下提供通信,诸如GSM语音呼叫(全球移动通信***)、SMS(短消息服务)、EMS(增强消息服务)或MMS消息(多媒体消息服务)、CDMA(码分多址)、TDMA(时分多址)、PDC(个人数字蜂窝)、WCDMA(宽带码分多址)、CDMA2000或GPRS(通用分组无线电业务)等。例如,可以使用射频通过收发器468发生这种通信。另外,可以发生短距离通信,诸如使用蓝牙、WiFi或其他这样的收发器。另外,GPS(全球定位***)接收器模块470可以向移动计算设备450提供附加的导航和与位所有关的无线数据,其可以适当地由在移动计算设备450上运行的应用使用。
移动计算设备450还可以使用音频编解码器460进行可听通信,该音频编解码器460可以从用户接收说出的信息并将其转换为可用的数字信息。诸如通过扬声器,例如,在移动计算设备450的听筒中,音频编解码器460可以类似地为用户生成可听见的声音。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如语音消息、音乐文件等),并且还可以包含由在移动计算设备450上操作的应用生成的声音。
移动计算设备450可以以多种不同的形式实现,如附图中所示。例如,其可以被实现为蜂窝电话480。其也可以被实现为智能电话482、个人数字助理或其他类似的移动设备的一部分。
这里描述的***和技术的各种实施方式可以以数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合来实现。这些各种实现方式可以包括在一个或多个计算机程序中的实现方式,该计算机程序可以在包括至少一个可编程处理器的可编程***上执行和/或解释,其可以是专用的或通用的,被耦合以从存储***、至少一个输入设备和至少一个输出设备中接收数据和指令,并且向存储***、至少一个输入设备和至少一个输出设备传输数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象的编程语言和/或以汇编/机器语言实现。如本文所使用的,术语机器可读介质、计算机可读介质是指用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语机器可读信号是指用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,此处描述的***和技术可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及通过其用户能够将输入提供给计算机的键盘和定点设备(例如,鼠标或轨迹球)的计算机上实现。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、话音或触觉输入。
能够在计算***中实现这里描述的***和技术,所述计算***包括后端组件(例如,作为数据服务器),或包括中间件组件(诸如应用服务器),或包括前端组件(例如,具有通过其用户能够与这里描述的***和技术的实现方式交互的图形用户界面或Web浏览器的客户端计算机),或者这种后端、中间件或前端组件的任何组合。***的组件能够通过(例如,通信网络)的数字数据通信的任何形式或介质来互连。通信网络的示例包括局域网(LAN)、广域网(WAN)和互联网。
计算***能够包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
尽管上面已经详细描述了一些实施方式,但是其他修改也是可能的。例如,虽然客户端应用被描述为访问代表,但是在其他实施方式中,代表可以被由一个或多个处理器实现的其他应用所采用,诸如在一个或多个服务器上执行的应用。另外,附图中描绘的逻辑流程不需要所示的特定顺序或顺序次序来实现期望的结果。另外,可以从所描述的流程中提供其他动作,或者可以消除动作,并且可以将其他组件添加到所描述的***或从所描述的***移除。因此,其他实施方式在所附权利要求的范围内。

Claims (23)

1.一种计算机实现的方法,包括:
由包括显示器的计算设备接收跨所述显示器沿着用户引起的路径拖动用户界面元素的用户输入;
由所述计算设备跨所述显示器沿着所述用户引起的路径移动所述用户界面元素;
由所述计算设备确定所述用户输入已经结束;
响应于确定所述用户输入已经结束,基于以下来确定附加路径和用于所述用户界面元素沿着所述附加路径移动的速度:
(i)所述用户引起的路径,以及
(ii)所述用户输入的速度;以及
由所述计算设备以所确定的用于所述用户界面元素沿着所述附加路径移动的速度来沿着所述附加路径将所述用户界面元素移动到静止位所。
2.根据权利要求1所述的方法,包括:
确定当所述用户输入结束时所述用户界面元素的位所,
其中,确定附加路径以及用于所述用户界面元素沿着所述附加路径移动的速度是基于当所述用户输入结束时所述用户界面元素的位所。
3.根据权利要求1所述的方法,其中,确定附加路径和用于所述用户界面元素沿着所述附加路径移动的速度包括:
从预定路径和速度的组中选择所述附加路径和所述速度。
4.根据权利要求1所述的方法,包括:
确定所述用户界面元素的用户界面元素类型,
其中,确定附加路径和用于所述用户界面元素沿着所述附加路径移动的速度是基于所述用户界面元素的所述用户界面元素类型。
5.根据权利要求4所述的方法,包括:
由所述计算设备接收附加用户输入,所述附加用户输入跨所述显示器沿着所述用户引起的路径拖动附加用户界面元素;
由所述计算设备跨所述显示器沿着所述用户引起的路径移动所述附加用户界面元素;
由所述计算设备确定所述附加用户输入已经结束;
确定所述附加用户界面元素是不同的用户界面元素类型;
响应于确定所述附加用户输入已经结束,基于以下来确定所述附加路径和用于所述用户界面沿着所述附加路径元素移动的不同速度:
(i)所述用户引起的路径,
(ii)所述附加用户输入的速度,以及
(iii)所述附加用户界面元素是所述不同的用户界面元素类型;以及
由所述计算设备以用于所述用户界面元素沿着所述附加路径移动的所述不同速度将所述附加用户界面元素沿着所述附加路径移动到所述静止位所。
6.根据权利要求1所述的方法,其中,确定附加路径和用于所述用户界面元素沿着所述附加路径移动的速度包括:
基于所述用户引起的路径和所述用户输入的速度来确定所述静止位所。
7.根据权利要求6所述的方法,包括:
确定所述用户引起的路径的距离不满足阈值距离;以及
基于确定所述用户引起的路径的距离不满足阈值距离,确定所述静止位所是所述用户界面元素的原始位所。
8.根据权利要求6所述的方法,包括:
确定所述用户引起的路径的距离满足阈值距离;以及
基于确定所述用户引起的路径的距离满足阈值距离,确定所述静止位所是除了所述用户界面元素的原始位所以外的位所。
9.根据权利要求1所述的方法,其中,确定附加路径和用于所述用户界面元素沿着所述附加路径移动的附加速度进一步基于所述用户界面元素的最大加速度、所述用户界面元素的最大速度和将所述用户界面元素沿着所述附加路径移动到所述静止位所的最大时间。
10.根据权利要求1所述的方法,其中:
所述附加路径对应于三次样条,所述三次样条包括所述静止位所和当所述用户输入结束时所述用户界面元素的位所,并且
所述速度对应于三次贝塞尔缓动函数。
11.根据权利要求1所述的方法,包括:
在所述用户输入已经结束时确定所述用户输入的速度。
12.根据权利要求1所述的方法,其中,所述用户引起的路径是沿着由所述计算设备固定的路径。
13.一种计算机实现的方法,包括:
由计算设备在所述计算设备的图形用户界面上的第一位置中显示用户界面元素;
响应于由所述计算设备接收到在所述第一位置处开始并在第一轨迹上移动的用户输入,沿着所述第一轨迹移动所述用户界面元素;以及
响应于在第二位置处的所述用户输入的终止:
由所述计算设备确定在所述第二位置处的所述用户界面元素的初始速率;
由所述计算设备确定在所述第二位置处开始的并且至少部分地基于所确定的所述用户界面元素的初始速率的所述用户界面元素的第二轨迹;以及
由所述计算设备沿着所述第二轨迹移动所述用户界面元素。
14.根据权利要求13所述的方法,其中,所述第二轨迹是至少部分地基于一个或多个预定参数;其中,所述预定参数包括所述用户界面元素的最大速率、所述用户界面元素的最大加速率和所述第二轨迹的最大时间中的一个或者多个。
15.根据权利要求14所述的方法,进一步包括确定所述图形用户界面上的第三位置,并且在所述第三位置处终止所述第二轨迹。
16.根据权利要求15所述的方法,其中,确定所述第二轨迹包括:
确定到所述第三位置的距离,
计算在所确定的距离内将所述初始速率减小到零所需的减速率,以及
如果所计算的减速率大于或等于所述最大加速率,则以所计算的速率将减速应用于所述用户界面元素。
17.根据权利要求16所述的方法,其中,确定所述第二轨迹进一步包括如果所计算的减速率小于所述最大加速率:
计算峰值速率,使得从所述初始速率到所述峰值速率以所述最大加速率的初始加速然后是从所述峰值速率到零以所述最大加速率的减速在所述第三位置处将到达零;以及
如果所述峰值速率小于或等于所述最大速率,则从所述初始速率到所述峰值速率以所述最大加速率应用所述初始加速,并从所述峰值速率到零以所述最大加速率应用所述减速。
18.根据权利要求17所述的方法,其中,确定所述第二轨迹进一步包括:如果所述峰值速率大于所述最大速率,则从所述初始速率到所述最大速率以所述最大加速率应用所述初始加速,对中间距离维持所述最大速率,以及从所述峰值速率到零以所述最大加速率应用所述减速;
其中,所述中间距离被计算,使得从所述峰值速率到零以所述最大加速率的所述减速在所述第三位置处将会到达零。
19.根据权利要求17或者权利要求18所述的方法,其中,确定所述第二轨迹进一步包括:如果所述初始速率在所述第三位置离开的方向上,则在从零应用所述初始加速之前,从所述初始速率到零以所述最大加速率应用第一减速。
20.根据权利要求15至19中的任意一项所述的方法,其中,如果所述第一位置和所述第二位置之间的距离在阈值距离以下,则所述第三位置被确定为位于所述第一位置处。
21.根据权利要求13至20中的任意一项所述的方法,其中,沿着所述第一轨迹移动所述用户界面元素包括:
基于所述用户输入的所述位所来计算锚点;以及
使用三次贝塞尔缓动函数基于所述锚点来沿着相应的三次样条移动所述用户界面元素的一个或多个点。
22.一种包括指令的计算机可读介质,所述指令在由处理器执行时被配置成执行任一项前述权利要求所述的方法。
23.一种***,包括一个或多个计算机和一个或多个存储指令的存储设备,所述指令在由所述一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1至21中的任意一项所述的方法。
CN201980029214.2A 2018-05-08 2019-04-17 拖动手势动画 Pending CN112055842A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862668598P 2018-05-08 2018-05-08
US62/668,598 2018-05-08
PCT/US2019/027843 WO2019217043A1 (en) 2018-05-08 2019-04-17 Drag gesture animation

Publications (1)

Publication Number Publication Date
CN112055842A true CN112055842A (zh) 2020-12-08

Family

ID=66324032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980029214.2A Pending CN112055842A (zh) 2018-05-08 2019-04-17 拖动手势动画

Country Status (4)

Country Link
US (1) US11449212B2 (zh)
EP (1) EP3765952A1 (zh)
CN (1) CN112055842A (zh)
WO (1) WO2019217043A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110874166B (zh) * 2018-08-29 2022-05-03 腾讯科技(深圳)有限公司 页面切换方法、装置、存储介质及计算机设备
JP7163755B2 (ja) * 2018-12-14 2022-11-01 京セラドキュメントソリューションズ株式会社 表示入力装置
GB201907377D0 (en) * 2019-05-24 2019-07-10 Masters Ian Method for managing gesture-based movement of a UI object
CN113554725A (zh) * 2020-04-24 2021-10-26 西安诺瓦星云科技股份有限公司 多图形移动吸附方法及其装置
JP7501159B2 (ja) * 2020-07-01 2024-06-18 コニカミノルタ株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US11385741B2 (en) * 2020-08-31 2022-07-12 Microsoft Technology Licensing, Llc Method to reduce blanking area for palm rejection in low cost in-cell displays
KR20220049407A (ko) * 2020-10-14 2022-04-21 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
US11435886B1 (en) * 2021-04-20 2022-09-06 Corel Corporation Graphical object manipulation via paths and easing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140359538A1 (en) * 2013-05-28 2014-12-04 General Electric Company Systems and methods for moving display objects based on user gestures
US20150029231A1 (en) * 2013-07-25 2015-01-29 Fu Tai Hua Industry (Shenzhen) Co., Ltd. Method and system for rendering a sliding object
CN107771309A (zh) * 2015-06-19 2018-03-06 微软技术许可有限责任公司 三维用户输入

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292712B1 (en) 1998-01-29 2001-09-18 Northrop Grumman Corporation Computer interface system for a robotic system
IL127293A0 (en) 1998-11-26 1999-09-22 Creator Ltd Script development systems and methods useful therefor
US7958460B2 (en) * 2007-10-30 2011-06-07 International Business Machines Corporation Method for predictive drag and drop operation to improve accessibility
US8479107B2 (en) * 2009-12-31 2013-07-02 Nokia Corporation Method and apparatus for fluid graphical user interface
US8839150B2 (en) 2010-02-10 2014-09-16 Apple Inc. Graphical objects that respond to touch or motion input
TWI447638B (zh) * 2010-02-12 2014-08-01 Esobi Inc The display method of the displacement of the object on the electronic device screen
US9465457B2 (en) 2010-08-30 2016-10-11 Vmware, Inc. Multi-touch interface gestures for keyboard and/or mouse inputs
US20120306890A1 (en) * 2011-06-05 2012-12-06 Shaffer Joshua H Device and Method for Dynamically Rendering an Animation
US9448633B2 (en) * 2011-10-01 2016-09-20 Oracle International Corporation Moving a display object within a display frame using a discrete gesture
US10872454B2 (en) * 2012-01-06 2020-12-22 Microsoft Technology Licensing, Llc Panning animations
CN102893249A (zh) 2012-07-30 2013-01-23 华为技术有限公司 一种对终端进行解锁的方法及装置
KR101955979B1 (ko) * 2012-09-04 2019-03-08 엘지전자 주식회사 이동 단말기 및 그의 어플리케이션 아이콘 이동 방법
US9703469B2 (en) 2012-10-18 2017-07-11 Dreamworks Animation Llc Distinguishing between impulses and continuous drag operations on a touch-sensitive surface
US20150046812A1 (en) * 2013-08-12 2015-02-12 Google Inc. Dynamic resizable media item player
EP3161602A1 (en) * 2014-06-24 2017-05-03 Google, Inc. User interface with quantum curves and quantum arcs
JP6390277B2 (ja) * 2014-09-02 2018-09-19 ソニー株式会社 情報処理装置、制御方法、およびプログラム
US20170371515A1 (en) 2014-11-19 2017-12-28 Honda Motor Co., Ltd. System and method for providing absolute and zone coordinate mapping with graphic animations
US9990113B2 (en) * 2015-09-08 2018-06-05 Apple Inc. Devices, methods, and graphical user interfaces for moving a current focus using a touch-sensitive remote control
US11093126B2 (en) * 2017-04-13 2021-08-17 Adobe Inc. Drop zone prediction for user input operations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140359538A1 (en) * 2013-05-28 2014-12-04 General Electric Company Systems and methods for moving display objects based on user gestures
US20150029231A1 (en) * 2013-07-25 2015-01-29 Fu Tai Hua Industry (Shenzhen) Co., Ltd. Method and system for rendering a sliding object
CN107771309A (zh) * 2015-06-19 2018-03-06 微软技术许可有限责任公司 三维用户输入

Also Published As

Publication number Publication date
WO2019217043A1 (en) 2019-11-14
US11449212B2 (en) 2022-09-20
US20190346985A1 (en) 2019-11-14
EP3765952A1 (en) 2021-01-20

Similar Documents

Publication Publication Date Title
US11449212B2 (en) Drag gesture animation
US11816325B2 (en) Application shortcuts for carplay
US9823828B2 (en) User interface for manipulating user interface objects with magnetic properties
JP6457715B2 (ja) 画面外の目に見えるオブジェクトの表面化
DK201570667A1 (en) Reduced-size user interfaces for dynamically updated application overviews
JP2018508076A (ja) 回転可能入力機構を用いたユーザインタフェース
US11379093B2 (en) User interface driven movement of data
WO2012158356A1 (en) Control of a device using gestures
US9933931B2 (en) Freeze pane with snap scrolling
AU2019257433B2 (en) Device, method and graphic user interface used to move application interface element
US9678656B2 (en) Preventing accidental selection events on a touch screen
US20150378553A1 (en) Dynamic hover grace period
US20180225025A1 (en) Technologies for providing user centric interfaces
US20180033180A1 (en) Transitioning between visual representations
US10496273B2 (en) Dismissing displayed elements
EP3204843B1 (en) Multiple stage user interface
US9200922B1 (en) Determining user attention
US20180189009A1 (en) Mobile device application view management
US20190265833A1 (en) Dynamic space bar
EP3186698B1 (en) Full screen pop-out of objects in editable form
US10409453B2 (en) Group selection initiated from a single item
US20220276777A1 (en) Mapping user inputs in two directions to a single direction for one-handed device interactions with graphical sliders

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