CN115390957A - 一种应用程序动效衔接的方法及装置 - Google Patents

一种应用程序动效衔接的方法及装置 Download PDF

Info

Publication number
CN115390957A
CN115390957A CN202110616128.0A CN202110616128A CN115390957A CN 115390957 A CN115390957 A CN 115390957A CN 202110616128 A CN202110616128 A CN 202110616128A CN 115390957 A CN115390957 A CN 115390957A
Authority
CN
China
Prior art keywords
image frame
electronic device
parameter information
animation
frame
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
CN202110616128.0A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to EP22810274.5A priority Critical patent/EP4318232A1/en
Priority to PCT/CN2022/088518 priority patent/WO2022247541A1/zh
Publication of CN115390957A publication Critical patent/CN115390957A/zh
Priority to US18/517,661 priority patent/US20240095988A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供一种应用程序动效衔接的方法及装置。该方法实现了,电子设备通过同一个animation leash对象做第一应用程序的启动动效和退出动效,启动动效和退出动效可以理解为同一段动效。当电子设备暂停播放启动动效,开始播放退出动效时,不会出现启动动效和退出动效切换时过渡不自然的问题。

Description

一种应用程序动效衔接的方法及装置
技术领域
本申请涉及终端技术领域,尤其涉及一种应用程序动效衔接的方法及装置。
背景技术
随着信息技术的不断发展,电子设备已经成为人们生活中不可或缺的工具。例如,用户可以在电子设备中安装各种不同的应用程序(application,APP)。不同的APP可以给用户提供不同的服务功能。
目前,为了使得应用程序在启动阶段或退出阶段,给用户带来较好的用户体验,电子设备会在应用程序的启动阶段或退出阶段会播放一段动效。目前,在电子设备100播放第一应用程序的启动动效的过程中,接收到用户退出第一应用的操作,电子设备100将停止播放启动动效,另外创建一个退出动效,并开始播放退出动效。但是,由于启动动效和退出动效是两段动效,在两段动效切换的时候,用户可以感觉到画面突变,体验感差。因此,解决启动动效与退出动效自然过渡是亟待解决的问题。
发明内容
本申请提供了一种应用程序动效衔接的方法及装置。实现了第一应用程序的启动动效和退出动效在切换过程中,都是根据第一animation leash对象做的动效,因此启动动效和退出动效是同一段动效,不会出现启动动效和退出动效由于是两段动效,切换时过渡不自然的问题。
第一方面,本申请提供了一种应用程序动效衔接的方法,方法包括:电子设备接收用户的第一操作,所述第一操作用于启动播放第一应用程序的第一动效;根据所述第一操作,所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中;所述电子设备接收用户的第二操作,所述第二操作用于指示所述电子设备播放所述第一应用程序的第二动效;根据所述第二操作,所述电子设备将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中。
通过第一方面提供的方法,实现了第一应用程序的启动动效和退出动效在切换过程中,都是根据第一animation leash对象做的动效,因此启动动效和退出动效是同一段动效,不会出现启动动效和退出动效由于是两段动效,切换时过渡不自然的问题。
结合第一方面,在一种可能的实现方式中,在所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中之前,所述方法还包括:电子设备基于所述第一动效中所述第一图像帧的第一参数信息合成所述第一图像帧;在所述电子设备将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中之前,所述方法还包括:所述电子设备基于所述第二动效中所述第二图像帧的第二参数信息合成所述第二图像帧。
结合第一方面,在一种可能的实现方式中,所述电子设备接收用户的第二操作,包括:所述电子设备在显示所述第一图像帧时,接收到所述第二操作。也即,电子设备在播放启动动效的过程中,接收用户的第二操作。这里,第一图像帧可以是启动动效中的最后一帧图像帧,也可以是启动动效中的最后一帧图像帧之前的任意一帧图像帧。
结合第一方面,在一种可能的实现方式中,在所述电子设备接收所述第二操作之前,所述方法还包括:所述电子设备在播放完所述第一动效后,显示所述第一应用程序的第一用户界面。电子设备可以在播放完启动动效之后,接收用户用于退出第一应用程序的第二操作。
结合第一方面,在一种可能的实现方式中,所述第二图像帧为所述第二动效中的首帧图像帧;在所述电子设备将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中之前,所述方法还包括:所述电子设备基于所述第一参数信息,确定出所述第二参数信息和所述第二窗口的属性信息;所述电子设备通过所述第一animation leach对象基于所述第二窗口的属性信息,绘制出所述第二窗口。电子设备需要根据启动动效或退出动效中每一帧图像帧的参数信息改变第一animation leach对象绘制的窗口属性,以使得第一animation leach对象绘制的窗口可以显示启动动效或退出动效中每一帧图像帧。
结合第一方面,在一种可能的实现方式中,所述电子设备基于所述第一参数信息,确定出所述第二参数信息,包括:所述电子设备基于所述第一参数信息插值运算出所述第二参数信息。即surfaceflinger按照插值算法根据启动动效或退出动效中当前显示的图像帧的初始参数信息来计算下一帧图像帧的参数信息的。这样,电子设备使用插值算法得到图像帧的参数信息合成的图像帧播放动效时,电子设备显示的动效效果会更加流畅。
插值算法可以通过如下公式根据动效中当前图像帧的参数信息得到下一帧图像帧的参数信息:
a=k*x/m公式(1)
V=v+a*t公式(2)
P=p+V*t公式(3)
如公式(1)、公式(2)和公式(3)所示,插值算法可以通过公式(1)、公式(2)和公式(3)根据图像帧的预设参数信息得到目标参数信息。在公式(1)、公式(2)和公式(3),a表示加速度,k表示刚性,根据弹簧的胡可定理,得到k=-F/x,其中,x表示弹簧形变的长度,F表示使弹簧发生形变的长度为x时收到的力,根据牛顿力学公式,F可以表示为F=m*a,其中,m为物体的指令。根据公式k=-F/x和公式F=m*a,可以的带加速度a=-k*x/m。
v表示物体的初始速度,V表示物体的下一时刻的速度,P表示物体的初始位置,p表示物体的下一时刻的位置,t表示当前电子设备100计算的是启动动效或者退出动效中的第几帧图像帧的参数信息。需要说明的是,当电子设备100在计算启动动效中的图像帧的参数信息时,公式(3)中的v为正数;当电子设备100在计算退出动效中的图像帧的参数信息时,公式(3)中的v为负数。
结合第一方面,在一种可能的实现方式中,在所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中之前,所述方法还包括:所述电子设备在所述surfaceflinger中新建动效处理线程;所述电子设备基于所述第一参数信息,确定出所述第二参数信息,包括:所述电子设备通过所述动效处理线程根据所述第一图像帧的第一参数信息确定出所述第二图像帧的第二参数信息。这样,电子设备在surfaceflinger侧新建动效处理线程,可以将电子设备中的所有应用程序的动效计算的任务事项放在surfaceflinger侧的动效处理线程区处理,一方面,可以集中调度电子设备中所有应用程序的动效计算的任务事项;另一方面,解决了动效计算在UI线程中计算时得不到及时调度导致动效中部分图像帧丢弃的问题,从而导致动效播放时出现卡顿的情况,使得动效播放更加流畅。
结合第一方面,在一种可能的实现方式中,所述第一参数信息包括以下任意一项或多项:所述第一图像帧的中心点的位置、所述第一图像帧的窗口尺寸、所述第一图像帧的透明度、所述第一图像帧的圆角大小;
所述第二参数信息包括以下任意一项或多项:所述第二图像帧的中心点的位置、所述第二图像帧的窗口尺寸、所述第二图像帧的透明度、所述第二图像帧的圆角大小;
所述第二窗口的属性信息包括以下任意一项或多项:所述第二窗口的中心点的位置、所述第二窗口的窗口尺寸、所述第二窗口的透明度、所述第二窗口的圆角大小。
第二方面,本申请提供了一种电子设备,电子设备包括:一个或多个处理器、一个或多个存储器;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:接收用户的第一操作,所述第一操作用于启动播放第一应用程序的第一动效;根据所述第一操作,将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中;接收用户的第二操作,所述第二操作用于指示所述电子设备播放所述第一应用程序的第二动效;根据所述第二操作,将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中。通过第一方面提供的方法,实现了第一应用程序的启动动效和退出动效在切换过程中,都是根据第一animation leash对象做的动效,因此启动动效和退出动效是同一段动效,不会出现启动动效和退出动效由于是两段动效,切换时过渡不自然的问题。
结合第二方面,在一种可能的实现方式中,在所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中之前,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:基于所述第一动效中所述第一图像帧的第一参数信息合成所述第一图像帧;基于所述第二动效中所述第二图像帧的第二参数信息合成所述第二图像帧。
结合第二方面,在一种可能的实现方式中,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:在显示所述第一图像帧时,接收到所述第二操作。也即,电子设备在播放启动动效的过程中,接收用户的第二操作。这里,第一图像帧可以是启动动效中的最后一帧图像帧,也可以是启动动效中的最后一帧图像帧之前的任意一帧图像帧。
结合第二方面,在一种可能的实现方式中,在所述电子设备接收所述第二操作之前,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:在播放完所述第一动效后,显示所述第一应用程序的第一用户界面。电子设备可以在播放完启动动效之后,接收用户用于退出第一应用程序的第二操作。
结合第二方面,在一种可能的实现方式中,所述第二图像帧为所述第二动效中的首帧图像帧;在所述电子设备将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中之前,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:基于所述第一参数信息,确定出所述第二参数信息和所述第二窗口的属性信息;通过所述第一animation leach对象基于所述第二窗口的属性信息,绘制出所述第二窗口。电子设备需要根据启动动效或退出动效中每一帧图像帧的参数信息改变第一animation leach对象绘制的窗口属性,以使得第一animation leach对象绘制的窗口可以显示启动动效或退出动效中每一帧图像帧。
结合第二方面,在一种可能的实现方式中,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:基于所述第一参数信息插值运算出所述第二参数信息。
即surfaceflinger按照插值算法根据启动动效或退出动效中当前显示的图像帧的初始参数信息来计算下一帧图像帧的参数信息的。这样,电子设备使用插值算法得到图像帧的参数信息合成的图像帧播放动效时,电子设备显示的动效效果会更加流畅。
插值算法可以通过如下公式根据动效中当前图像帧的参数信息得到下一帧图像帧的参数信息:
a=k*x/m公式(1)
V=v+a*t公式(2)
P=p+V*t公式(3)
如公式(1)、公式(2)和公式(3)所示,插值算法可以通过公式(1)、公式(2)和公式(3)根据图像帧的预设参数信息得到目标参数信息。在公式(1)、公式(2)和公式(3),a表示加速度,k表示刚性,根据弹簧的胡可定理,得到k=-F/x,其中,x表示弹簧形变的长度,F表示使弹簧发生形变的长度为x时收到的力,根据牛顿力学公式,F可以表示为F=m*a,其中,m为物体的指令。根据公式k=-F/x和公式F=m*a,可以的带加速度a=-k*x/m。
v表示物体的初始速度,V表示物体的下一时刻的速度,P表示物体的初始位置,p表示物体的下一时刻的位置,t表示当前电子设备100计算的是启动动效或者退出动效中的第几帧图像帧的参数信息。需要说明的是,当电子设备100在计算启动动效中的图像帧的参数信息时,公式(3)中的v为正数;当电子设备100在计算退出动效中的图像帧的参数信息时,公式(3)中的v为负数。
结合第二方面,在一种可能的实现方式中,在所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中之前,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:在所述surfaceflinger中新建动效处理线程;通过所述动效处理线程根据所述第一图像帧的第一参数信息确定出所述第二图像帧的第二参数信息。这样,电子设备在surfaceflinger侧新建动效处理线程,可以将电子设备中的所有应用程序的动效计算的任务事项放在surfaceflinger侧的动效处理线程区处理,一方面,可以集中调度电子设备中所有应用程序的动效计算的任务事项;另一方面,解决了动效计算在UI线程中计算时得不到及时调度导致动效中部分图像帧丢弃的问题,从而导致动效播放时出现卡顿的情况,使得动效播放更加流畅。
结合第二方面,在一种可能的实现方式中,所述第一参数信息包括以下任意一项或多项:所述第一图像帧的中心点的位置、所述第一图像帧的窗口尺寸、所述第一图像帧的透明度、所述第一图像帧的圆角大小;所述第二参数信息包括以下任意一项或多项:所述第二图像帧的中心点的位置、所述第二图像帧的窗口尺寸、所述第二图像帧的透明度、所述第二图像帧的圆角大小;所述第二窗口的属性信息包括以下任意一项或多项:所述第二窗口的中心点的位置、所述第二窗口的窗口尺寸、所述第二窗口的透明度、所述第二窗口的圆角大小。
第三方面,本申请提供了一种计算机可读存储介质,包括指令,当指令在电子设备上运行时,使得电子设备执行上述任一方面任一可能的实现方式中提供的一种动效计算方法。
第四方面,本申请提供了一种包含指令的计算机程序产品质,当计算机程序产品在电子设备上运行时,使得电子设备执行上述任一方面任一可能的实现方式中提供的一种动效计算方法。
附图说明
图1A-图1M为本申请实施例提供的一组启动动效的UI图;
图2A-图2M为本申请实施例提供的另一组启动动效的UI图;
图3A-图3E为本申请实施例提供的另一组启动动效的UI图;
图4A-图4B为本申请实施例提供的一组动效中图像帧的中心点的运动轨迹示意图;
图5为本申请实施例提供的一种电子设备100播放启动动效和播放退出动效的示意图;
图5A本申请实施例提供的一种图层合成多线性运行的示意图;
图6为本申请实施例提供的一种电子设备100的结构示意图;
图7为本申请实施例提供的一种电子设备100的软件结构框图;
图8A-图8H示例性示出了退出第一应用的操作是作用并垂直于电子设备100的屏幕下边沿向屏幕上方的滑动操作对应的应用场景的UI图;
图9A-图9F示例性示出了退出第一应用的操作是作用于电子设备100的屏幕下边沿向屏幕右上方的滑动操作对应的应用场景的UI图;
图10A-图10F示例性示出了退出第一应用的操作是作用于电子设备100的屏幕下边沿向屏幕左上方的滑动操作对应的应用场景的UI图;
图11示例性示出了几种插值算法的动效曲线的效果示意图;
图12为本申请实施例提供的另一种电子设备100播放启动动效和播放退出动效的示意图;
图13为本申请实施例提供的一种应用程序动效衔接的方法流程图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清除、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请的说明书和权利要求书及附图中的术语“用户界面(user interface,UI)”,是应用程序或操作***与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。应用程序的用户界面是通过java、可扩展标记语言(extensible markup language,XML)等特定计算机语言编写的源代码,界面源代码在终端设备上经过解析,渲染,最终呈现为用户可以识别的内容,比如图像、文本、按钮等控件。控件(control)也称为部件(widget),是用户界面的基本元素,典型的控件有工具栏(toolbar)、菜单栏(menu bar)、输入框、按钮(button)、滚动条(scrollbar)、图像和文本。界面中的控件的属性和内容是通过标签或者节点来定义的,比如XML通过<Textview>、<ImgView>、<VideoView>等节点来规定界面所包含的控件。一个节点对应界面中一个控件或属性,节点经过解析和渲染之后呈现为用户可视的内容。此外,很多应用程序,比如混合应用(hybrid application)的界面中通常还包含有网页。网页,也称为页面,可以理解为内嵌在应用程序界面中的一个特殊的控件,网页是通过特定计算机语言编写的源代码,例如超文本标记语言(hyper text markup language,HTML),层叠样式表(cascading stylesheets,CSS),java脚本(JavaScript,JS)等,网页源代码可以由浏览器或与浏览器功能类似的网页显示组件加载和显示为用户可识别的内容。网页所包含的具体内容也是通过网页源代码中的标签或者节点来定义的,比如HTML通过<p>、<img>、<video>、<canvas>来定义网页的元素和属性。
用户界面常用的表现形式是图形用户界面(graphic user interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个窗口、控件等界面元素。
首先对本申请实施例涉及到的技术术语进行解释。
1、动效
动效即M帧图像帧按照预定顺序变换位置、大小和显示形式等等,使用户感觉到电子设备显示的用户界面的层次更加丰富。
本申请实施例涉及的动效包括启动动效和退出动效。其中,从应用程序接收用户触发应用程序启动操作开始,至电子设备100显示该应用程序的主界面之前,这个阶段称为应用程序的启动阶段,启动阶段花费的时间称为启动时间。由于在应用程序的启动阶段,电子设备100需要对应用程序进行初始化和预加载的工作,启动时间较长,为了给用户带来更好的用户体验,电子设备100会在应用程序的启动阶段播放一段启动动效,启动功效可以是由N帧图像帧按照预定的顺序按照预设窗口大小、预设显示时间、预设显示位置和预设透明度和预设的显示元素等悬浮显示在电子设备100的用户界面上。从应用程序启动之后,电子设备100接收用户退出应用程序的操作,至电子设备100显示主界面为止,这个阶段称为应用程序的退出阶段,退出阶段花费的时间称为退出时间。由于在应用程序的退出时间较长,为了给用户带来更好的用户体验,电子设备100会在应用程序的退出阶段播放一段退出动效,退出功效可以是由N帧图像帧按照预定的顺序按照预设窗口大小、预设显示时间、预设显示位置和预设透明度和预设的显示元素等悬浮显示在电子设备100的用户界面上。
可以理解的是,启动动效和退出动效可以是互逆的动效,也可以是互不相同的两段动效,本身请在此不做限定。
(1)、启动动效
图1A-图1M、图2A-图2M、图3A-图3E示例性示出了几种启动动效的UI示例图。
如图1A-图1M,在一些实施例中,每一帧图像帧的尺寸从预设最小尺寸逐渐变大到预设最大尺寸。
在一种可能的实现方式中,启动动效中的图像帧的中心点与电子设备100的显示屏的中心点重合,每一帧图像帧的尺寸随着时间的推移可以先从预设最小尺寸逐渐成比例变大至预设最大尺寸。
如图1A所示,图1A示例性了一种启动动效中图像帧的尺寸变化的示意图。
例如在t1时刻,电子设备100接收并响应用户点击应用图标的操作,该应用程序的图标的尺寸不变,应用程序的原始尺寸可以称为预设最小尺寸;之后,在t2时刻,应用程序的图标的尺寸逐渐增大;在t3时刻,应用程序的图标的尺寸不再变大,电子设备100显示矩形框,该矩形框的尺寸如t3时刻所示的矩形框尺寸;在t4时刻,矩形框的尺寸由t3时刻增大到t4时刻的矩形框的尺寸;在t5时刻,矩形框的尺寸由t4时刻增大到t4时刻的矩形框的尺寸,将t5时刻的矩形框的尺寸称为预设最大尺寸。
如图1B所示,启动动效中,第一帧图像帧1001的尺寸大小与应用程序的图标的尺寸大小一致,并且该第一帧图像帧1001的中心点与应用程序的图标的中心点处于同一位置,即都处于位置1002。第一帧图像帧1001的尺寸为最小尺寸(即宽为a,高为b)。第一帧图像帧1001可以从预设最小尺寸逐渐变大至图像帧1003的预设最大尺寸,预设最大尺寸为宽为A,长为B。
如图1C所示,启动动效中,第一帧图像帧1001从预设最小尺寸逐渐变大至图像帧1004,并且图像帧1004的中心点与应用程序的图标的中心点处于同一位置,即都处于位置1002。图像帧1004的尺寸为宽为c,高为d。c大于a,d大于b。
如图1D所示,启动动效中,图像帧1004的尺寸逐渐变大至图像帧1005,并且图像帧1005的中心不再与应用程序的图标的中心点1002处于同一位置,而是与图像帧1003的中心点处于同一位置,即都处于位置1006。图像帧1005的尺寸为宽为e,高为f。f大于d。
如图1E所示,启动动效中,图像帧1005的尺寸逐渐变大至图像帧1007,并且图像帧1007的中心不再与应用程序的图标的中心点1002处于同一位置,而是与图像帧1003的中心点处于同一位置,即都处于位置1006。图像帧1007的尺寸为宽为g,高为h。g大于e,h大于f。
如图1F所示,启动动效中,图像帧1007的尺寸逐渐变大至图像帧1008,并且图像帧1008的中心不再与应用程序的图标的中心点1002处于同一位置,而是与图像帧1003的中心点处于同一位置,即都处于位置1006。图像帧1007的尺寸为宽为i,高为j。i大于g,j大于h。i等于A,j等于B。
当应用程序启动时,电子设备100可以在应用程序的启动阶段播放启动动效,启动动效包括多帧图像帧,每帧图像帧的显示位置和尺寸可以不同。电子设备100按照顺序依次显示多帧图像帧。
示例性的,如图1G所示,图1G示例性地示出电子设备100的用户界面10。该用户界面10可以包括一些应用程序的图标。例如,文件管理的图标1009、电子邮件的图标1010、音乐的图标1011、运动健康的图标1012、华为视频的图标1013、天气的图标1014、相机的图标1015、通讯录的图标1016、电话的图标1017、信息的图标1018。在一些实施例中,用户界面10可以包括更多或更少的应用程序的图标。在一些实施例中,用户界面10中可以包括一些与图1G示出的应用程序不同的应用程序的图标,此处不作限定。
电子设备100可以接收并响应于作用于用户界面10上的华为视频的图标1013上的用户操作(例如单击),华为视频应用程序将会启动。
如图1H所示,第一帧图像帧1001的图像内容与华为视频应用程序的图标的图像内容一样,第一帧图像帧1001的尺寸大小与华为视频应用程序的图标的尺寸大小一致,并且该第一帧图像帧1001的中心点与华为视频应用程序的图标的中心点处于同一位置。
如图1I所示,第一帧图像帧1001从预设最小尺寸逐渐变大至图像帧1004,图像帧1004的图像内容与华为视频应用程序的图标的图像内容一样,并且图像帧1004的中心点与华为视频应用程序的图标的中心点处于同一位置。
如图1J所示,图像帧1004的尺寸逐渐变大至图像帧1005,图像帧1005的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。并且图像帧1005的中心不再与华为视频应用程序的图标的中心点1002处于同一位置,而是与电子设备100的显示屏的中心点处于同一位置。
如图1K所示,图像帧1005的尺寸逐渐变大至图像帧1007,图像帧1007的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。并且图像帧1007的中心不再与华为视频应用程序的图标的中心点1002处于同一位置,而是与电子设备100的显示屏的中心点处于同一位置。
如图1L所示,图像帧1007的尺寸逐渐变大至图像帧1008,图像帧1008的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定,如图1L所示,图像帧1008的图像内容包括华为视频的图标以及文字“华为视频”和“看遍全世界”。并且图像帧1008的中心不再与华为视频应用程序的图标的中心点1002处于同一位置,而是与电子设备100的显示屏的中心点处于同一位置。
如图1M所示,电子设备100的启动动效播放完毕之后,电子设备100显示华为视频应用程序的主界面。华为视频应用程序的主界面包括有一个或多个视频图像。视频的图像可以是动态的,也可以是静态的。此外,主界面还可以显示有底部菜单栏、搜索框、子频道入口等,本申请实施例对此不作限制。
如图2A-图2M,在一些实施例中,启动动效中,图像帧的中心点是实时变化的,每一帧图像帧的尺寸从预设最小尺寸逐渐变大到预设最大尺寸,且图像帧任一条边框与预设最大尺寸图像帧的边框相接触。
如图2A所示,图2A示例性了另一种启动动效中图像帧的尺寸变化的示意图。
例如在t1时刻,电子设备100接收并响应用户点击应用图标的操作,该应用程序的图标的尺寸不变,应用程序图标的原始尺寸可以称为预设最小尺寸;之后,在t2时刻,应用程序的图标的尺寸逐渐增大;在t3时刻,应用程序的图标的尺寸不再变大,电子设备100显示矩形框,该矩形框的尺寸如t3时刻所示的矩形框尺寸;在t4时刻,矩形框的尺寸由t3时刻增大到t4时刻的矩形框的尺寸,并且t4时刻的矩形框的一条边框(例如下边框)与预设最大尺寸的矩形框的边框(力图下边框重合);在t5时刻,矩形框的尺寸由t4时刻增大到t5时刻的矩形框的尺寸,并且t5时刻的矩形框的另一条边框(例如左边框)与预设最大尺寸的矩形框的另一条边框(例如左边框)重合;在t6时刻,矩形框的尺寸由t5时刻增大到t6时刻的矩形框的尺寸,将t6时刻的矩形框的尺寸称为预设最大尺寸。
如图2B所示,启动动效中,第一帧图像帧2004的尺寸大小与应用程序的图标的尺寸大小一致,并且该第一帧图像帧2004的中心点与应用程序的图标的中心点处于同一位置,即都处于位置2001,第一帧图像帧2004的中心点与电子设备100的显示屏的中心点2002不重合。第一帧图像帧2004的尺寸为最小尺寸(即宽为a,高为b)。第一帧图像帧2004可以从预设最小尺寸逐渐变大至图像帧2003的预设最大尺寸,预设最大尺寸为宽为A,长为B。
如图2C所示,启动动效中,第一帧图像帧2004从预设最小尺寸逐渐变大至图像帧2005,并且图像帧2005的中心点与应用程序的图标的中心点处于同一位置,即都处于位置2001,图像帧2005的中心点与电子设备100的显示屏的中心点2002不重合。图像帧2005的尺寸为宽为c,高为d。c大于a,d大于b。
如图2D所示,启动动效中,图像帧2005的尺寸逐渐变大至图像帧2006,并且图像帧2006的中心点2007不再与应用程序的图标的中心点2001处于同一位置,同时也不与图像帧2003的中心点2002处于同一位置。图像帧2006的尺寸为宽为e,高为f。f大于d。
如图2E所示,启动动效中,图像帧2006的尺寸逐渐变大至图像帧2008,图像帧2008的任意一个边框(例如下边框)与图像帧2003的边框(例如下边框)重合。并且图像帧2008的中心点2009不再与应用程序的图标的中心点2001处于同一位置,同时也不与图像帧2006的中心点2007处于同一位置,也不与图像帧2003的中心点2002处于同一位置。图像帧2008的尺寸为宽为g,高为h。g大于e,h大于f。
如图2F所示,启动动效中,图像帧2008的尺寸逐渐变大至图像帧2010,图像帧2010的任意一个边框(例如下边框)与图像帧2003的边框(例如下边框)重合。同时图像帧2010的任意另一个边框(例如左边框)与图像帧2003的另一个边框(例如左边框)重合。并且图像帧2010的中心点2011不再与应用程序的图标的中心点2001处于同一位置,同时也不与图像帧2006的中心点2007处于同一位置,也不与图像帧2008的中心点2009处于同一位置,也不与图像帧2003的中心点2002处于同一位置。图像帧2010的尺寸为宽为i,高为j。i大于g,j大于h。
如图2G所示,启动动效中,图像帧2010的尺寸逐渐变大至图像帧2012,图像帧2012的所有边框与图像帧2003的所有边框重合。并且图像帧2012的中心点2013不与应用程序的图标的中心点2001处于同一位置,同时也不与图像帧2006的中心点2007处于同一位置,也不与图像帧2008的中心点2009处于同一位置,也不与图像帧2010的中心点2011处于同一位置,而是与图像帧2003的中心点2002处于同一位置。图像帧2012的尺寸为宽为k,高为l。k大于i,l大于j。k等于A,j等于B。
当应用程序启动时,电子设备100可以在应用程序的启动阶段播放启动动效,启动动效包括多帧图像帧,每帧图像帧的显示位置和尺寸可以不同。电子设备100按照顺序依次显示多帧图像帧。
示例性的,如图1G所示,图1G示例性地示出电子设备100的用户界面10。该用户界面10可以包括一些应用程序的图标。例如,文件管理的图标1009、电子邮件的图标1010、音乐的图标1011、运动健康的图标1012、华为视频的图标1013、天气的图标1014、相机的图标1015、通讯录的图标1016、电话的图标1017、信息的图标1018。在一些实施例中,用户界面10可以包括更多或更少的应用程序的图标。在一些实施例中,用户界面10中可以包括一些与图1G示出的应用程序不同的应用程序的图标,此处不作限定。
电子设备100可以接收并响应于作用于用户界面10上的华为视频的图标1013上的用户操作(例如单击),华为视频应用程序将会启动。
如图2H所示,第一帧图像帧2004的图像内容与华为视频应用程序的图标的图像内容一样,第一帧图像帧2004的尺寸大小与华为视频应用程序的图标的尺寸大小一致,并且该第一帧图像帧204的中心点2001与华为视频应用程序的图标的中心点处于同一位置。
如图2I所示,第一帧图像帧2004从预设最小尺寸逐渐变大至图像帧2005,图像帧2005的图像内容与华为视频应用程序的图标的图像内容一样,并且图像帧2005的中心点与华为视频应用程序的图标的中心点2001处于同一位置,与电子设备100的显示屏的中心点2002不处于同一位置。
如图2J所示,图像帧2005的尺寸逐渐变大至图像帧2006,图像帧2006的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。并且图像帧2006的中心点2007不再与华为视频应用程序的图标的中心点2001处于同一位置,也不与电子设备100的显示屏的中心点2002处于同一位置。
如图2K所示,图像帧2006的尺寸逐渐变大至图像帧2008,图像帧2008的一个边框(例如下边框)与电子设备100的显示屏的边框(例如下边框)重合,图像帧2008的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。并且图像帧2008的中心点2009不再与华为视频应用程序的图标的中心点2001处于同一位置,与图像帧2006的中心点2007也不处于同一位置,与电子设备100的显示屏的中心点2002不处于同一位置。
如图2L所示,图像帧2008的尺寸逐渐变大至图像帧2010,图像帧2010的另一个边框(例如左边框)与电子设备100的显示屏的另一个边框(例如左边框)重合,图像帧2008的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。并且图像帧2010的中心点2011不再与华为视频应用程序的图标的中心点2001处于同一位置,与图像帧2006的中心点2007也不处于同一位置,与图像帧2008的中心点2009也不处于同一位置,与电子设备100的显示屏的中心点2002不处于同一位置。
如图2M所示,图像帧2010的尺寸逐渐变大至图像帧2012,图像帧2012的所有边框与电子设备100的显示屏的所有边框重合,图像帧2012的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。如图2M所示,图像帧2012的图像内容包括华为视频的图标以及文字“华为视频”和“看遍全世界”。并且图像帧2012的中心点2013不再与华为视频应用程序的图标的中心点2001处于同一位置,与图像帧2006的中心点2007也不处于同一位置,与图像帧2008的中心点2009也不处于同一位置,与图像帧2010的中心点2011也不处于同一位置,而是与电子设备100的显示屏的中心点2002处于同一位置。
如图3A-图3E,在一些实施例中,启动动效中,每一帧图像帧的尺寸是固定的,每一帧图像帧的中心点按照预设轨迹移动。其中,每一帧图像帧的形状可以是圆形、也可以为矩形的,本申请在此不做限定。
电子设备100接收并响应用户点击应用图标的操作,应用程序的图标的尺寸逐渐变大,当应用程序的图标的尺寸变大到预设尺寸之后,应用程序的图标的尺寸不再变化,电子设备100的用户界面悬浮显示图像帧,该图像帧可以按照按照预设轨迹移动。具体的,应用程序的图标变化的UI图请参考图1G-图1I的实施例,本申请在此不再赘述。图像帧按照按照预设轨迹移动的UI图请参考下述图3A-图3E的实施例。
示例性的,如图3A所示,图像帧3004的中心点3001可以在位置3002和位置3003之间以直线轨迹左右移动。当图像帧3004的中心点3001处于位置3002时,图像帧3004的左边框可以与电子设备100显示屏的左边框重合。当图像帧3004的中心点3001处于位置3003时,图像帧3004的右边框可以与电子设备100显示屏的右边框重合。图像帧3004的图像内容可以包括一个或多个元素,也可以不包括任何元素,本申请在此不做限定。
示例性的,如图3B所示,图像帧3004的中心点3001可以在位置3005和位置3006之间以直线轨迹上下移动。当图像帧3004的中心点3001处于位置3005时,图像帧3004的上边框可以与电子设备100显示屏的上边框重合。当图像帧3004的中心点3001处于位置3006时,图像帧3004的下边框可以与电子设备100显示屏的下边框重合。图像帧3004的图像内容可以包括一个或多个元素,也可以不包括任何元素,本申请在此不做限定。
示例性的,如图3C所示,图像帧3004的中心点3001可以在位置3007和位置3008之间以直线轨迹向右上和左下移动。当图像帧3004的中心点3001处于位置3007时,图像帧3004的上边框可以与电子设备100显示屏的上边框重合,同时图像帧3004的右边框可以与电子设备100显示屏的右边框重合。当图像帧3004的中心点3001处于位置3008时,图像帧3004的下边框可以与电子设备100显示屏的下边框重合,同时图像帧3004的左边框可以与电子设备100显示屏的左边框重合。图像帧3004的图像内容可以包括一个或多个元素,也可以不包括任何元素,本申请在此不做限定。
示例性的,如图3D所示,图像帧3004的中心点3001可以在位置3009和位置3010之间以直线轨迹向左上和右下移动。当图像帧3004的中心点3001处于位置3009时,图像帧3004的上边框可以与电子设备100显示屏的上边框重合,同时图像帧3004的左边框可以与电子设备100显示屏的左边框重合。当图像帧3004的中心点3001处于位置3010时,图像帧3004的下边框可以与电子设备100显示屏的下边框重合,同时图像帧3004的右边框可以与电子设备100显示屏的右边框重合。图像帧3004的图像内容可以包括一个或多个元素,也可以不包括任何元素,本申请在此不做限定。
如图3E所示,图像帧3004的中心点3001的运动轨迹961可以为心形图形,其中,图像帧3004可以在该运动轨迹3011上按照顺时针或者逆时针运动。
需要说明的是,上述图像帧3004的中心点3001在电子设备100中的运动轨迹不限于上述图形,还可以有其他图形,例如,圆形、横“8”曲线图形、贝塞尔曲线图形、圆弧曲线图形,等等,本申请在此不做限定。
(2)退出特效
电子设备100接收用户启动应用程序的操作之后,电子设备100再接收用户退出应用程序的操作,至电子设备100显示主界面为止,这个阶段称为应用程序的退出阶段,退出阶段花费的时间称为退出时间。由于在应用程序的退出时间较长,为了给用户带来更好的用户体验,电子设备100会在应用程序的退出阶段播放一段退出动效,退出功效可以是由N帧图像帧按照预定的顺序按照预设窗口大小、预设显示时间、预设显示位置和预设透明度和预设的显示元素等悬浮显示在电子设备100的用户界面上。
在一些实施例中,当应用程序已经显示应用程序的主界面时,电子设备100接收用户退出该应用程序的操作。此时,在退出动效中,每一帧图像帧的尺寸从预设最大尺寸逐渐变小到预设最小尺寸。其中,预设最大尺寸可以为与电子设备100的显示屏的尺寸大小一样,预设最小尺寸可以与应用程序的图标的尺寸大小一致。
具体的,在一种可能的现方式中,退出动效中,图像帧的显示顺序可以是按照图1L、图1K、图1J、图1I、图1H的顺序依次显示。
在另一种可能的现方式中,退出动效中,图像帧的显示顺序可以是按照图2M、图2L、图2K、图2J、图2I、图2H的顺序依次显示。
退出特效中,图像帧还可以按照其他的规则依次显示,本申请在此不做限定。
在另一些实施例中,当应用程序已经启动,在显示应用程序的主界面之前,电子设备100接收用户退出该应用程序的操作。假设该应用程序的启动动效包括M帧图像帧,退出动效也包括M帧图像帧。当启动动效播放至第N帧时,N小于M,此时,在电子设备100在播放退出动效中,有以下两种实现方式。
方式一:
当启动动效播放至第N帧时,N小于M,电子设备100接收用户退出该应用程序的操作,则电子设备100启动退出动效,并停止播放启动动效中的图像帧,并且电子设备100开始从退出动效的第M帧开始播放,一直播放到退出动效中的第1帧图像帧。
需要说明的是,启动动效包括M帧图像帧,启动动效的播放顺序为第1帧图像帧、第2帧图像帧、…第N帧图像帧、…、第M帧图像帧。
退出动效包括M帧图像帧,退出动效的播放顺序为第M帧图像帧、第M-1帧图像帧、…第N帧图像帧、…、第1帧图像帧。
示例性的,若某应用程序的启动动效包括30帧图像帧,退出动效也包括30帧图像帧。应用程序启动之后,该应用程序的启动动效播放到了第8帧,电子设备100已播放的图像帧为第1帧图像帧至第8帧图像帧,第1帧图像帧至第8帧图像帧可以是图1H至图1K所示的UI图。可以理解的是,图1H至图1K中省略了部分附图。
示例性的,如图4A所示,图4A示例性示出了启动动效从第1帧播放至第8帧的每帧图像帧的中心点的运动轨迹示意图。
当启动动效播放至第8帧时,电子设备100接收用户退出该应用程序的操作,则电子设备100启动退出动效,并且电子设备100开始从退出动效的第8帧图像帧开始播放,一直播放至退出动效的第1帧图像帧。第8帧图像帧至第1帧图像帧可以是图1K至图1H所示的UI图。可以理解的是,图1K至图1H中省略了部分附图。
需要说明的是,退出动效中每一帧图像帧的图像信息与启动动效中每一帧图像帧的图像信息可以相同,也可以不相同,本申请在此不做限定,图像信息但不仅限于:图像帧的尺寸、图像帧的显示元素、图像帧的透明度、图像帧的显示时间、图像帧的圆角信息等等。
如图4A所示,以电子设备100的页面显示区域的下边框指向右方向为X轴的正方向,以电子设备100的页面显示区域的左边框向上方向为Y轴的正方向,以X轴和Y轴的交点为原点建立直角坐标系。
首先,初始位置为启动动效中第1帧图像帧的中心点,第1帧图像帧的中心点为启动动效每帧图像帧的中心点的运动轨迹的初始位置。之后,启动动效中每帧图像帧的中心点按照运动轨迹4001的方向依次移动,当启动动效中第8帧图像帧的中心点移动到运动轨迹的最终位置时,电子设备100接收用户退出应用程序的操作,电子设备100执行退出动效。
如图4B所示,初始位置为启动动效中第8帧图像帧的中心点,电子设备100将启动退出动效,并且依次播放退出动效中的第8帧图像帧至第1帧图像帧。可以理解的是,退出动效中第8帧的图像帧的中心点与启动动效中第8帧图像帧的中心点重合。退出动效中的第8帧图像帧的中心点为退出动效中每帧图像帧的中心点的运动轨迹的初始位置。之后,退出动效中每帧图像帧的中心点按照运动轨迹4002的方向依次移动,当启动动效中第1帧图像帧的中心点移动到运动轨迹的最终位置时,电子设备100退出该应用程序,并显示主界面。
需要说明的是,运动轨迹4001与运动轨迹4002可以相同,也可以不相同,本申请在此不做限定。
方式二:
当启动动效播放至第N帧时,N小于M,电子设备100接收用户退出该应用程序的操作,则电子设备100启动退出动效,但是电子设备100并不停止播放启动动效中的图像帧,电子设备100将启动动效中的第N+1帧图像帧至第M帧图像帧与退出动效中第1帧图像帧至第M-N帧图像帧分别对应叠加,得到新的M-N帧图像帧。电子设备100将播放新的M-N帧图像帧和退出动效中的第M-N+1帧图像帧至第M帧图像帧。
示例性的,若某应用程序的启动动效包括30帧图像帧,退出动效也包括30帧图像帧。应用程序启动之后,该应用程序的启动动效播放到了第8帧,电子设备100已播放的图像帧为第1帧图像帧至第8帧图像帧,第1帧图像帧至第8帧图像帧可以是图1H至图1K所示的UI图。可以理解的是,图1H至图1K中省略了部分附图。
之后,电子设备100将启动动效中的第9帧图像帧至第30帧图像帧分别与退出动效中的第1帧图像帧和第22帧图像帧分别进行叠加运算,得到新的21帧图像帧。电子设备100将依次播放该新的21帧图像帧和退出动效中的第23帧图像帧至第30帧图像帧。
2、动效计算
动效计算包括启动动效计算和退出动效计算。
其中,电子设备100在播放启动动效时,需要计算启动动效中每一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等参数信息,并根据每一帧图像帧的参数信息合成图像帧。这里,将启动动效中每一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息称为图像帧的参数信息。图像帧的参数信息还可以包括其他更多的信息,本申请在此不做限定。
同时,电子设备100在播放退出动效时,也需要计算退出动效中每一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,并根据每一帧图像帧的参数信息合成图像帧。
可以理解的是,每一帧图像帧的窗口大小为图像帧的长和宽的值;每一帧图像帧的显示时间为图像帧在电子设备100的用户界面上悬浮显示的时间;每一帧图像帧的显示位置为图像帧的中心点在电子设备100的显示屏上的位置坐标;每一帧图像帧的透明度为图像帧颜色的深度、图像帧的颜色越深,则该图像帧的透明度越小;每一帧图像帧的显示元素为图像帧中显示的文字信息和/或图像信息等等。
电子设备100如何进行动效计算的,将在后续实施例中详细介绍,本申请在此不再赘述。
3、UI线程:一个Android程序默认情况只有一个进程,但是一个进程可以有多个线程。其中有一个线程为UI线程,UI线程也称为UI主线程,UI线程在程序运行的时候就被创建,主要是负责控制UI界面的显示、更新和控件交互。所有的应用程序组件----包括activity、service、broadcast receiver都在应用程序的主线程中运行。因此,任何组件中的费时操作处理都可能阻塞所有其他的组件、包括service和可见的activity。
4、图层合成(surface flinger,SF)模块:图层合成的作用是接受多个来源的图形显示数据,将它们合成,然后发送到显示设备显示。比如打开应用,常见的有三层显示,顶部的statusbar底部或者侧面的导航栏以及应用的界面,每个层是单独更新和渲染,这些界面都是由图层合成合成一个帧缓存区(Frame Buffer),电子设备的显示器可以从FrameBuffer中读数据,并显示该数据对应的页面。在显示过程中使用到了bufferqueue(缓存队列),图层合成作为合成方,比如窗口管理的图层作为生产方通过GPU产生的页面,交由图层合成进行合成。
如图5所示,图5示例性示出了一种电子设备100播放启动动效和播放退出动效的示意图。
图5示所述的流程图包含第一应用程序、AMS(activitity管理服务)模块、WMS(窗口管理服务)模块和SF(图层合成)模块。
在一些实施例中,也可以不包括图层合成模块,本申请在此不做限定。
其中,AMS用于电子设备100中所有activity生命周期的管理服务。
WMS用于管理窗口的显示顺序、尺寸、位置、窗口动画等等。
首先,电子设备100接收用户开启第一应用程序的操作,响应于用户开启第一应用程序的操作,电子设备100通过AMS模块和WMS模块创建第一annimation leash对象。之后,WMS模块将第一annimation leash对象的标识发送至第一应用程序,第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序开始做启动动效。
具体的,S501-S508描述了AMS模块和WMS模块创建第一annimation leash对象的方法流程。需要说明的是,AMS模块和WMS模块创建第一annimation leash对象的方法流程可以包括比S501-S508更多或更少的步骤,本申请在此不做限定。并且,本申请对于S501-S508中每个步骤的执行顺序不做限定。
S501、第一应用程序启动。
电子设备100接收用户启动第一应用程序的操作,第一应用程序启动。
示例性的,第一应用程序可以是华为视频应用程序。启动第一应用程序的操作可以是如图1G所示的点击华为视频应用程序的图标的操作。
S502、第一应用程序启动activity。
Activity是第一应用程序中的核心主件。电子设备100接收用户启动第一应用程序的操作之后,第一应用程序启动,第一应用程序启动activity。
S503、第一应用程序向AMS(activitity manager service,activitity管理服务)模块模块发送binder指令。
AMS模块是负责activity生命周期的管理服务。
AMS模块位于第一应用程序的应用程序框架层,在应用程序框架层中,AMS是一个非常重要的接口,它不但负责启动activity和service,还负责管理sctivity和service。
第一应用程序启动activity之后,通过binder指令进程间通信进入到***的AMS进程中,并且调用AMS.start activity接口。
S504、AMS模块设置activity为可见的。
S505、AMS模块设置activity的生命周期。
S506、AMS模块向窗口管理服务(window manager service,WMS)模块发送准备开启启动动效的通知。
S507、WMS模块接收并响应AMS模块发送的准备开启启动动效的通知,WMS模块准备开始做动画,并创建第一animation leash对象。
具体的,WMS模块调用apply animation locked函数准备开始动画。WMS模块获取app window token对应的父节点Task对象,使用Task的surface animator做动画。其中,app window token对应一个activity,即activity在***里的实际对象,用于AMS模块和WMS模块对activity的操作。surface animator负责对窗口做动画,管理窗口动画的生命周期。
WMS模块通过surface animator创建第一animation leash对象。第一animationleash对象是surface animator创建出来的临时对象,可以控制有哪些窗口要动,并且第一应用程序可以通过第一animation leash对象来控制启动动效中每一帧图像帧的参数信息。
S508、WMS模块将第一animation leash对象发送至第一应用程序。
第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序开始做启动动效。第一应用程序确定出启动动效中每一帧图像帧的参数信息,之后,第一应用程序根据启动动效中每一帧图像帧的参数信息改变第一animation leash对象绘制的窗口的属性,第一应用程序将启动动效中每一帧图像帧的参数信息发送至SF模块,由SF模块合成图像帧,之后,SF模块将合成的图像帧显示在第一animation leash对象绘制的窗口中。
或者,第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序告知SF模块开始做启动动效。第一应用程序确定出启动动效中图像帧的初始参数信息,之后,第一应用程序将启动动效中图像帧的初始参数信息发送至SF模块,SF模块根据启动动效中图像帧的初始参数信息确定出启动动效中每一帧图像帧的参数信息,并根据启动动效中每一帧图像帧的参数信息合成图像帧,SF模块根据启动动效中每一帧图像帧的参数信息改变第一animation leash对象绘制的窗口的属性,SF模块将合成的图像帧显示在第一animation leash对象绘制的窗口中。
具体的,S509-S512描述了第一应用程序如何播放启动动效的方法流程。需要说明的是,第一应用程序如何播放启动动效的方法流程可以包括比S509-S512更多或更少的步骤,本申请在此不做限定。并且,本申请对于S508-S510中每个步骤的执行顺序不做限定。
S509、第一应用程序获取启动动效中图像帧的初始参数信息。
启动动效中图像帧的初始参数信息为启动动效中第1帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等参数信息,图像帧的初始参数信息还可以包括其他更多的信息,本身请在此不做限定。
在一些实施例中,第1帧图像帧的参数信息可以与第一应用程序的图标的参数信息一致。即第1帧图像帧的窗口大小与第一应用程序的图标大小一样,第1帧图像帧的显示位置为第一应用程序的图标的显示位置,第1帧图像帧的显示元素与第一应用程序的图标的显示元素相同。
在另一些实施例中,第1帧图像帧的参数信息也可以与第一应用程序的图标的参数信息不一致,本申请在此不做限定。
S510、第一应用程序将启动动效中图像帧的初始参数信息发送至图层合成模块。
S511、图层合成模块根据启动动效中图像帧的初始参数信息得到下一帧图像帧的目标参数信息,并根据下一帧图像帧的目标参数信息改变第一animation leash对象的属性值。
通过S510和S511,第一应用程序将动效计算的任务事项发送至图层合成模块,由图层合成模块去做动效计算。这样,可以极大地改善目前UI线程处理动效计算时出现的丢帧问题。
具体的,图层合成模块在原有线程的基础上,新建了一个动效处理线程,该动效处理线程的任务为计算电子设备100中所有UI线程处理的动效计算的任务事项。这样,可以解决应用程序的UI线程由于处理不及时导致图像帧丢失的问题。
如图5A所示,图5A示例性示出了图层合成多线性运行的示意图。
图层合成的作用在于接收多个来源的图形显示数据,将它们合成,然后发送到显示设备。比如打开应用,常见的有三层显示,顶部的statusbar底部或者侧面的导航栏以及应用的界面,每个层是单独更新和渲染。
示例性的,图层合成在启动的过程中,一共涉及到了三种类型的线程,它们分别是线程1(例如Binder线程)、线程2(例如UI渲染线程)和线程3(例如控制台事件监控线程)。Binder线程是为了让其它进程,例如应用程序进程,可以与,图层合成进行binder进程间通信的,有一部分通信所执行的操作便是让UI渲染线程更新***的UI。控制台事件监控线程是为了监控硬件帧缓冲区的睡眠/唤醒状态切换事件。一旦硬件帧缓冲区要进入睡眠或者唤醒状态,控制台事件监控线程都需要通知UI渲染线程,以便UI渲染线程可以执行关闭或者启动显示屏的操作。
可以理解的是,图层合成中的多线程之间是并行运行的。
如图5A所示,图层合成侧现有线程1、线程2和线程3。为了解决电子设备100将动效计算的任务事项放置在各个应用程序的UI线程中处理,导致应用程序处理不及时导致丢帧的问题,电子设备100在图层合成侧新建了一个线程(动效处理线程)。该动效处理线程的作用在于,电子设备100中所有应用程序的UI线程将动效计算的任务事项耦合至图层合成侧的动效处理线程,图层合成侧的动效处理线程处理电子设备100中所有应用程序的动效计算的任务事项。
可以理解的是,动效处理线程、线程1、线程2和线程3是并行运行的,并且动效处理线程只用于动效计算,由于第一应用程序处理不及时导致丢帧的问题。一方面,极大地改善了目前UI线程处理动效计算时出现的丢帧问题;另一方面,电子设备100播放启动动效或退出动效时,不会出现卡顿的问题,提高了用户体验。
具体的,图层合成模块接收到第一应用程序发送的启动动效中图像帧的初始参数信息,根据启动动效中图像帧的初始参数信息计算得到下一帧图像帧的目标参数信息。图层合成模块将下一帧图像帧的目标参数信息发送至WMS模块,WMS模块根据下一帧图像帧的目标参数信息改变第一animation leash对象的属性值。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第一animation leash对象的属性值的属性值也包括窗口大小、显示时间、显示位置、透明度和显示元素等信息。
可以理解的是,第一animation leash对象可以是悬浮显示在电子设备100的用户界面之上的一个窗口。之后,图层合成模块根据启动动效中图像帧的初始参数信息,对该“窗口”的属性进行设置,使得该窗口可以按照启动动效中预设图像帧的显示顺序和显示状态显示图像。
S512、图层合成模块将启动动画发送至显示器进行播放。
第一应用程序如何播放启动动效的,可以参考图1A-图1L、图2A-图2M、图3A-图3E所示的实施例,本申请在此不再赘述。
在一些实施例中,S510、S511和S512也可以替换为下面的S510和S511:
S510、第一应用程序根据启动动效中图像帧的初始参数信息得到下一帧图像帧的目标参数信息,并根据下一帧图像帧的目标参数信息改变第一animation leash对象的属性值。
在一些实施例中,动效计算的任务事项也可以由第一应用程序来做的。
即第一应用程序获取到启动动效中图像帧的初始参数信息,根据启动动效中图像帧的初始参数信息计算得到下一帧图像帧的目标参数信息。第一应用程序根据下一帧图像帧的目标参数信息改变第一animation leash对象的属性值。第一animation leash对象的属性值与下一帧图像帧的目标参数信息相同。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第一animationleash对象的属性值的属性值也包括窗口大小、显示时间、显示位置、透明度和显示元素等信息。
可以理解的是,第一animation leash对象可以是悬浮显示在电子设备100的用户界面之上的一个窗口。之后,图层合成模块根据启动动效中图像帧的初始参数信息,对该“窗口”的属性进行设置,使得该窗口可以按照启动动效中预设图像帧的显示顺序和显示状态显示图像。
S511、第一应用程序将启动动画发送至显示器进行播放。
电子设备100如何播放启动动效的,可以参考图1A-图1L、图2A-图2M、图3A-图3E所示的实施例,本申请在此不再赘述。
电子设备100接收用户退出第一应用程序的操作,电子设备100可以在播放启动动效的过程中接收用户退出第一应用程序的操作,也可以在播放完启动动效之后接收用户退出第一应用程序的操作,本申请在此不做限定。响应于用户退出第一应用程序的操作,电子设备100通过AMS模块和WMS模块创建第二annimation leash对象。之后,WMS模块将第二annimation leash对象的标识发送至第一应用程序,第一应用程序接收到第二annimationleash对象的标识之后,第一应用程序开始做退出动效。
具体的,S513-S516描述了AMS模块和WMS模块创建第二annimation leash对象的方法流程。需要说明的是,AMS模块和WMS模块创建第二annimation leash对象的方法流程可以包括比S513-S516更多或更少的步骤,本申请在此不做限定。并且,本申请对于S513-S516中每个步骤的执行顺序不做限定。
S513、第一应用程序退出。
在第一应用程序启动之后,电子设备100开始播放启动动效,这时,电子设备100可以接收并响应于用户退出第一应用程序的操作,第一应用程序退出。
在第一应用程序退出时,电子设备100会播放退出动效。
S514、第一应用程序向WMS模块发送binder指令。
当第一应用程序退出时,第一应用程序会向WMS模块发送binder指令,该binder指令用于指示WMS模块开始做退出动效。
S515、WMS模块接收并响应binder指令,创建第二animation leash对象。
同样的,WMS模块通过surface animator创建第二animation leash对象。第二animation leash对象是surface animator创建出来的临时对象,可以控制有哪些窗口要动,并且第一应用程序可以通过第二animation leash对象来控制退出动效中每一帧图像帧的参数信息。
S516、WMS模块将第二animation leash对象发送至第一应用程序。
第一应用程序接收到第二annimation leash对象的标识之后,第一应用程序开始做退出动效。第一应用程序确定出退出动效中每一帧图像帧的参数信息,之后,第一应用程序根据退出动效中每一帧图像帧的参数信息改变第二animation leash对象绘制的窗口的属性,第一应用程序将退出动效中每一帧图像帧的参数信息发送至SF模块,由SF模块合成图像帧,之后,SF模块将合成的图像帧显示在第二animation leash对象绘制的窗口中。
或者,第一应用程序接收到第二annimation leash对象的标识之后,第一应用程序告知SF模块开始做退出动效。第一应用程序确定出退出动效中图像帧的初始参数信息,之后,第一应用程序将退出动效中图像帧的初始参数信息发送至SF模块,SF模块根据退出动效中图像帧的初始参数信息确定出退出动效中每一帧图像帧的参数信息,并根据退出动效中每一帧图像帧的参数信息合成图像帧,SF模块根据退出动效中每一帧图像帧的参数信息改变第一animation leash对象绘制的窗口的属性,SF模块将合成的图像帧显示在第一animation leash对象绘制的窗口中。
具体的,S517-S520描述了AMS模块和WMS模块创建第二annimation leash对象的方法流程。需要说明的是,AMS模块和WMS模块创建第二annimation leash对象的方法流程可以包括比S517-S520更多或更少的步骤,本申请在此不做限定。并且,本申请对于S517-S520中每个步骤的执行顺序不做限定。
S517、第一应用程序获取退出动效中图像帧的初始参数信息。
S518、第一应用程序将退出动效中图像帧的初始参数信息发送至图层合成模块。
S519、图层合成模块根据退出动效中图像帧的初始参数信息得到下一帧图像帧的目标参数信息,并根据下一帧图像帧的目标参数信息改变第二animation leash对象的属性值。
通过S518和S519,第一应用程序将动效计算的任务事项发送至图层合成模块,由图层合成模块去做动效计算。这样,可以极大地改善目前UI线程处理动效计算时出现的丢帧问题。
具体的,图层合成模块在原有线程的基础上,新建了一个动效处理线程,该线程的任务为计算电子设备100中所有UI线程处理的动效计算的任务事项。
具体的,图层合成模块接收到第一应用程序发送的退出动效中图像帧的初始参数信息,根据退出动效中图像帧的初始参数信息计算得到下一帧图像帧的目标参数信息。图层合成模块根据下一帧图像帧的目标参数信息改变第二animation leash对象的属性值。第二animation leash对象的属性值与下一帧图像帧的目标参数信息相同。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第二animation leash对象的属性值的属性值也包括窗口大小、显示时间、显示位置、透明度和显示元素等信息。
可以理解的是,第二animation leash对象可以是悬浮显示在电子设备100的用户界面之上的一个窗口。之后,图层合成模块根据启动动效中图像帧的初始参数信息,对该“窗口”的属性进行设置,使得该窗口可以按照启动动效中预设图像帧的显示顺序和显示状态显示图像。
S520、图层合成模块将退出动画发送至显示器进行播放。
电子设备100如何播放退出动效的,在前述的技术术语解释中已解释,请参考前述实施例,本申请在此不再赘述。
在一些实施例中,S518、S519和S520也可以替换为下面的S518和S519:
S518、第一应用程序根据退出动效中图像帧的初始参数信息改变得到下一帧图像帧的目标参数信息,并根据下一帧图像帧的目标参数信息改变第二animation leash对象的属性值。
在一些实施例中,动效计算的任务事项也可以由第一应用程序来做的。
即第一应用程序获取到退出动效中图像帧的初始参数信息,根据退出动效中图像帧的初始参数信息计算得到下一帧图像帧的目标参数信息。第一应用程序根据下一帧图像帧的目标参数信息改变第二animation leash对象的属性值。第二animation leash对象的属性值与下一帧图像帧的目标参数信息相同。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第二animationleash对象的属性值的属性值也包括窗口大小、显示时间、显示位置、透明度和显示元素等信息。
可以理解的是,第二animation leash对象可以是悬浮显示在电子设备100的用户界面之上的一个窗口。之后,图层合成模块根据启动动效中图像帧的初始参数信息,对该“窗口”的属性进行设置,使得该窗口可以按照启动动效中预设图像帧的显示顺序和显示状态显示图像。
S519、第一应用程序将退出动画发送至显示器进行播放。
电子设备100如何播放退出动效的,在前述的技术术语解释中已解释,请参考前述实施例,本申请在此不再赘述。
如图5分析可知,当电子设备100播放第一应用程序的启动动效时,创建了第一animation leash对象,电子设备100根据第一animation leash对象做启动动效。在第一应用程序的启动动效还没播放完毕时,电子设备100接收用户退出第一应用程序的操作,电子设备100将关闭启动动效,新建第二animation leash对象做退出动效,之后,电子设备100开始播放退出动效。由于启动动效和退出动效是两段动效,在两段动效切换的时候,用户可以感觉到画面突变,体验感差。
目前,有两种方式播放退出动效。这两种方式在术语解释中已经提及过,请参考前述实施例。
其中,方式一存在以下缺陷:电子设备100播放第一应用程序的启动动效,在电子设备100播放完第一应用程序的启动动效之前,电子设备100接收用户退出第一应用程序的操作,电子设备100将停止播放启动动效,开始播放退出动效。这里,启动动效和退出动效是两段动效,在两段动效切换的时候,用户可以感觉到画面突变,体验感差。
方式二存在以下缺陷:当启动动效还没播放完时,电子设备100创建了一个退出动效。电子设备100需要将启动动效与退出动效中重叠部分的动效进行叠加,电子设备100显示叠加部分的动效。当叠加部分的动效播放完成之后,电子设备100开始播放退出动效中动效。该方式二中,电子设备100需要将启动动效与退出动效中重叠部分的动效进行叠加运算,复杂场景中的运算会比较复杂。并且,电子设备100在启动动效停止之后将进行三部分的运算,启动动效中未播放的启动动效的计算、与启动动效中未播放的启动动效重叠部分的退出动效的计算、启动动效中未播放的启动动效和启动动效中未播放的启动动效重叠部分的退出动效的叠加运算,这无疑增加了电子设备100的运算量。
因此,本申请提供了一种应用程序动态衔接的方法,方法包括:电子设备100接收用户开启第一应用程序的操作,电子设备100创建第一animation leash对象做启动动效;在第一应用程序的启动过程中,电子设备100接收用户退出第一应用程序的操作,电子设备100复用第一animation leash对象做退出动效。这样,第一应用程序的启动动效和退出动效在切换过程中,都是根据第一animation leash对象做的动效,因此启动动效和退出动效是同一段动效,不会出现启动动效和退出动效由于是两段动效,切换时过渡不自然的问题。
接下来,介绍本申请实施例的提及的电子设备100的硬件架构。
图6示出了电子设备100的结构示意图。
下面以电子设备100为例对实施例进行具体说明。电子设备100的设备类型可以包括手机、平板电脑、智慧屏、桌面型计算机、膝上计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,等。本申请实施例对电子设备100的设备类型不做特殊限制。
应该理解的是,图6所示电子设备100仅是一个范例,并且电子设备100可以具有比图6中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
在一些实施例中,处理器110可以包括softAP配网模块。该softAP配网模块可集成在AP或NPU或其他芯片中。当确认NAN配网失败,电子设备100可以唤醒该softAP配网模块,利用softAP配网的方法为电子设备100配网。在另一些实施例中,处理器110可以包括蓝牙配网模块、声波配网模块等等。本申请实施例对集成上述不同类型的配网模块的芯片不作限定。上述不同类型的配网模块可以在电子设备100确认NAN配网失败后被唤醒。电子设备100可以利用上述不同类型的配网模块为电子设备100提供对应的配网服务。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与***设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
耳机接口170D用于连接有线耳机。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。
气压传感器180C用于测量气压。
磁传感器180D包括霍尔传感器。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备100姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。
环境光传感器180L用于感知环境光亮度。
指纹传感器180H用于采集指纹。
温度传感器180J用于检测温度。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。
骨传导传感器180M可以获取振动信号。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过***SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
电子设备100的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android***为例,示例性说明电子设备100的软件结构。
图7是本发明实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图7所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图7所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合捕获拍照场景,示例性说明电子设备100软件以及硬件的工作流程。
当触摸传感器180K接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头193捕获静态图像或视频。
接下来结合应用场景对对申请实施例提供的一种应用程序动效衔接的方法进行说明。
首先,电子设备100接收并响应用户开启第一应用程序的操作,电子设备100播放第一应用程序的启动动效。
示例性的,若第一应用程序的启动动效由N帧图像(例如10帧)帧组成,在电子设备100接收用户退出第一应用程序时,电子设备100已播放至启动动效中的第M帧(例如4帧)图像。
示例性的,电子设备100已播放的启动动效中的前4帧图像帧可以是如图1H-图1K所示的UI图,本申请在此不再赘述。
在电子设备100显示启动动效中的第4帧图像帧(例如图1K所示的UI图)时,电子设备100接收用户退出第一应用的操作,电子设备100将启动退出动效。
退出第一应用的操作可以是作用于电子设备100的屏幕边沿(例如下边沿)向屏幕上方的滑动操作,还可以是作用于“三键”中的返回主界面键的点击操作。需要说明的是,“三键”中的返回主界面键可以是实体按键,也可以是虚拟按键,本申请在此不做限定。退出第一应用的操作还可以是其他的操作,本申请在此不做限定。
本申请实施例以退出第一应用的操作是作用于电子设备100的屏幕下边向屏幕上方的滑动操作为例进行说明。
需要说明的是,作用于电子设备100的屏幕下边沿向屏幕上方的滑动操作的方向会影响退出动效的播放效果。
具体的,当退出第一应用的操作是作用并垂直于电子设备100的屏幕下边沿向屏幕上方的滑动操作时,此操作对于电子设备100播放退出动效是没有影响的。
当退出第一应用的操作是作用于电子设备100的屏幕下边沿向屏幕右上方的滑动操作时,电子设备100播放的退出动效将向右偏移。
当退出第一应用的操作是作用于电子设备100的屏幕下边沿向屏幕左上方的滑动操作时,电子设备100播放的退出动效将向左偏移。
首先,介绍退出第一应用的操作是作用并垂直于电子设备100的屏幕下边沿向屏幕上方的滑动操作对应的应用场景。
图8A-图8H示例性示出了退出第一应用的操作是作用并垂直于电子设备100的屏幕下边沿向屏幕上方的滑动操作对应的应用场景的UI图。
示例性的,如图8A所示,图8A为电子设备100播放的第一应用程序的启动动效中的最后1帧图像帧8001。电子设备100接收并响应用户作用并垂直于电子设备100的屏幕下边向屏幕上方的滑动操作,电子设备100将播放第一应用程序的退出动效。
并且,电子设备100是根据同一个animation leash对象绘制的窗口显示的图像帧8001和图像帧8002。图像帧8001为启动动效中的最后一帧帧图像帧。图像帧8002为退出动效中的第一帧帧图像帧。因此电子设备100在切换启动动效和退出动效时,过渡自然。
电子设备100显示如图8B所示的图像帧8002,图像帧8002可以是退出动效中的第1帧图像帧。图像帧8002的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。
图像帧8002的尺寸逐渐变小,电子设备100显示如图8C所示的图像帧8003,图像帧8003可以是退出动效中的第2帧图像帧。图像帧8003的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。
图像帧8003的尺寸逐渐变小,电子设备100显示如图8D所示的图像帧8004,图像帧8004可以是退出动效中的第3帧图像帧。图像帧8004的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。
图像帧8004的尺寸逐渐变小,电子设备100显示如图8E所示的图像帧8005,图像帧8005可以是退出动效中的第4帧图像帧。图像帧8005的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。
图像帧8005的尺寸逐渐变小,电子设备100显示如图8F所示的图像帧8006,图像帧8006可以是退出动效中的第5帧图像帧。图像帧8006的尺寸大小大于华为视频的图标的尺寸,图像帧8006的图像内容显示的是华为视频的图标的图像内容。图像帧8006的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。
图像帧8006的尺寸逐渐变小,电子设备100显示如图8G所示的图像帧8007,图像帧8007可以是退出动效中的第6帧图像帧。图像帧8007的尺寸大小与华为视频的图标的尺寸一样,图像帧8007的图像内容显示的是华为视频的图标的图像内容。图像帧8007的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。
可以理解的是,图8A-图8G只是示出了退出动效中的部分附图,还可以包括更多的附图,图8A-图8G中省略了部分附图,本申请在此不做限定。
图8H示例性示出了上述退出动效中图8A-图8G所示的图像帧的中心点的移动轨迹图。
初始位置为图8A所示的图像帧的中心点的位置,之后,图8A-图8G所示的图像帧的中心点从初始位置沿着运动轨迹8008逐渐向最终位置移动。最终位置为图8F和图8G所示的图像帧的中心点的位置。
图9A-图9F示例性示出了退出第一应用的操作是作用于电子设备100的屏幕下边沿向屏幕右上方的滑动操作对应的应用场景的UI图。
示例性的,如图9A所示,图9A中的图像帧9001为电子设备100播放的第一应用程序的启动动效中的最后一帧帧图像帧。电子设备100接收并响应用户作用于电子设备100的屏幕下边沿向屏幕右上方的滑动操作,电子设备100将播放第一应用程序的退出动效。
电子设备100显示如图9B所示的图像帧9002,图像帧9002可以是退出动效中的第1帧图像帧。图像帧9002的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。如图9B所示,图像帧9002与图像帧8002相比,图像帧9002向电子设备100的屏幕右侧偏移。
并且,电子设备100是根据同一个animation leash对象绘制的窗口显示的图像帧9001和图像帧9002。图像帧9001为启动动效中的最后一帧帧图像帧。图像帧9002为退出动效中的第一帧帧图像帧。因此电子设备100在切换启动动效和退出动效时,过渡自然。
需要说明的是,图像帧9002的右边沿超出电子设备100的右边沿部分的图像,电子设备100不显示,电子设备100只显示图像帧9002的左边沿与电子设备100的右边沿之间的图像。
在一些实施例中,图像帧9002向电子设备100的屏幕右侧偏移,最大的偏移量为图像帧9002的右边沿与电子设备100的屏幕右侧重合。本申请对于图像帧9002向电子设备100的屏幕右侧偏移量不做限定。
图像帧9002的尺寸逐渐变小,电子设备100显示如图9C所示的图像帧9003,图像帧9003可以是退出动效中的第2帧图像帧。图像帧9003的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。如图9C所示,图像帧9003与图像帧8003相比,图像帧9003向电子设备100的屏幕右侧偏移。
图像帧9003的尺寸逐渐变小,电子设备100显示如图9D所示的图像帧9004,图像帧9004可以是退出动效中的第3帧图像帧。图像帧9004的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。如图9D所示,图像帧9004与图像帧8004相比,图像帧9004向电子设备100的屏幕右侧偏移。
图像帧9004的尺寸逐渐变小,电子设备100显示如图9E所示的图像帧9005,图像帧9005可以是退出动效中的第4帧图像帧。图像帧9005的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。如图9E所示,图像帧9005与图像帧8005相比,图像帧9005向电子设备100的屏幕右侧偏移。
图像帧9005的尺寸逐渐变小,电子设备100显示如图8F所示的图像帧8006,图像帧8006可以是退出动效中的第5帧图像帧。图像帧8006的尺寸大小大于华为视频的图标的尺寸,图像帧8006的图像内容显示的是华为视频的图标的图像内容。图像帧8006的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。
图像帧8006的尺寸逐渐变小,电子设备100显示如图8G所示的图像帧8007,图像帧8007可以是退出动效中的第6帧图像帧。图像帧8007的尺寸大小与华为视频的图标的尺寸一样,图像帧8007的图像内容显示的是华为视频的图标的图像内容。图像帧8007的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。
可以理解的是,图9A-图9E、图8F-图8G只是示出了退出动效中的部分附图,还可以包括更多的附图,图9A-图9E、图8F-图8G中省略了部分附图,本申请在此不做限定。
图9F示例性示出了上述退出动效中图9A-图9E、图8F-图8G所示的图像帧的中心点的移动轨迹图。
初始位置为图9A所示的图像帧的中心点的位置,之后,图9A-图9E、图8F-图8G所示的图像帧的中心点从初始位置沿着运动轨迹9006逐渐向最终位置移动。最终位置为图8F和图8G所示的图像帧的中心点的位置。
如图9F所示,退出第一应用的操作是作用于电子设备100的屏幕下边沿向屏幕右上方的滑动操作时,退出动效中图像帧的中心点的运动轨迹为轨迹9006。退出第一应用的操作是作用于电子设备100的屏幕下边沿并且垂直于屏幕下边沿向屏幕右上方的滑动操作时,退出动效中图像帧的中心点的运动轨迹为轨迹8008,可以看出,轨迹9006与轨迹8008相比,整体向电子设备100的屏幕右侧偏移。
图10A-图10F示例性示出了退出第一应用的操作是作用于电子设备100的屏幕下边沿向屏幕左上方的滑动操作对应的应用场景的UI图。
示例性的,如图10A所示,图10A中的图像帧10001为电子设备100播放的第一应用程序的启动动效中的最后一帧帧图像帧。电子设备100接收并响应用户作用于电子设备100的屏幕下边沿向屏幕左上方的滑动操作,电子设备100将播放第一应用程序的退出动效。
电子设备100显示如图10B所示的图像帧10002,图像帧10002可以是退出动效中的第1帧图像帧。图像帧10002的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。如图10B所示,图像帧10002与图像帧8002相比,图像帧1002向电子设备100的屏幕左侧偏移。
并且,电子设备100是根据同一个animation leash对象绘制的窗口显示的图像帧10001和图像帧10002。图像帧10001为启动动效中的最后一帧帧图像帧。图像帧10002为退出动效中的第一帧帧图像帧。因此电子设备100在切换启动动效和退出动效时,过渡自然。
需要说明的是,图像帧10002的左边沿超出电子设备100的右边沿部分的图像,电子设备100不显示,电子设备100只显示图像帧9002的右边沿与电子设备100的左边沿之间的图像。
在一些实施例中,图像帧9002向电子设备100的屏幕左侧偏移,最大的偏移量为图像帧9002的左边沿与电子设备100的屏幕左侧重合。本申请对于图像帧9002向电子设备100的屏幕左侧偏移量不做限定。
图像帧10002的尺寸逐渐变小,电子设备100显示如图10C所示的图像帧10003,图像帧10002可以是退出动效中的第2帧图像帧。图像帧10003的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。如图10C所示,图像帧10003与图像帧8003相比,图像帧10003向电子设备100的屏幕左侧偏移。
图像帧10003的尺寸逐渐变小,电子设备100显示如图10D所示的图像帧10004,图像帧10004可以是退出动效中的第3帧图像帧。图像帧10004的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。如图10D所示,图像帧10004与图像帧8004相比,图像帧10004向电子设备100的屏幕左侧偏移。
图像帧10004的尺寸逐渐变小,电子设备100显示如图10E所示的图像帧10005,图像帧10005可以是退出动效中的第4帧图像帧。图像帧10005的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。如图10E所示,图像帧10005与图像帧8005相比,图像帧10005向电子设备100的屏幕左侧偏移。
图像帧10005的尺寸逐渐变小,电子设备100显示如图8F所示的图像帧8006,图像帧8006可以是退出动效中的第5帧图像帧。图像帧8006的尺寸大小大于华为视频的图标的尺寸,图像帧8006的图像内容显示的是华为视频的图标的图像内容。图像帧8006的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。
图像帧8006的尺寸逐渐变小,电子设备100显示如图8G所示的图像帧8007,图像帧8007可以是退出动效中的第6帧图像帧。图像帧8007的尺寸大小与华为视频的图标的尺寸一样,图像帧8007的图像内容显示的是华为视频的图标的图像内容。图像帧8007的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。
可以理解的是,图10A-图10E、图8F-图8G只是示出了退出动效中的部分附图,还可以包括更多的附图,图10A-图10E、图8F-图8G中省略了部分附图,本申请在此不做限定。
图10F示例性示出了上述退出动效中图10A-图10E、图8F-图8G所示的图像帧的中心点的移动轨迹图。
初始位置为图10A所示的图像帧的中心点的位置,之后,图10A-图10E、图8F-图8G所示的图像帧的中心点从初始位置沿着运动轨迹10006逐渐向最终位置移动。最终位置为图8F和图8G所示的图像帧的中心点的位置。
如图10F所示,退出第一应用的操作是作用于电子设备100的屏幕下边沿向屏幕左上方的滑动操作时,退出动效中图像帧的中心点的运动轨迹为轨迹10006。退出第一应用的操作是作用于电子设备100的屏幕下边沿并且垂直于屏幕下边沿向屏幕右上方的滑动操作时,退出动效中图像帧的中心点的运动轨迹为轨迹8008,可以看出,轨迹10006与轨迹8008相比,整体向电子设备100的屏幕左侧偏移。
接下来,介绍,电子设备100如何进行动效计算的。
前述术语解释中提及过,动效计算即计算启动动效或退出动效中每一帧图像帧的参数信息。本申请实施例是按照插值算法根据启动动效或退出动效中图像帧的初始参数信息来计算下一帧图像帧的参数信息的。
首先介绍电子设备100按照插值算法根据启动动效中图像帧的初始参数信息来计算启动动效中下一帧图像帧的参数信息的。
假设该应用程序的启动动效包括M帧图像帧,启动动效中图像帧的初始参数信息是预设好的,示例性的,启动动效中图像帧的初始参数信息为启动动效中第1帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等参数信息,图像帧的初始参数信息还可以包括其他更多的信息,本身请在此不做限定。
在一些实施例中,第1帧图像帧的参数信息可以与第一应用程序的图标的参数信息一致。即第1帧图像帧的窗口大小与第一应用程序的图标大小一样,第1帧图像帧的显示位置为第一应用程序的图标的显示位置,第1帧图像帧的显示元素与第一应用程序的图标的显示元素相同。
在另一些实施例中,第1帧图像帧的参数信息也可以与第一应用程序的图标的参数信息不一致,本申请在此不做限定。
电子设备100接收用户开启第一应用程序的操作,电子设备100开始播放第一应用程序的启动动效。电子设备100可以按照插值算法根据当前图像帧的参数信息得到下一帧图像帧的参数信息。
具体的,电子设备100获取到启动动效的图像帧的初始参数信息,该启动动效的图像帧的初始参数信息可以是启动动效中第1帧图像帧的参数信息。电子设备100可以根据差值算法根据启动动效中第1帧图像帧的参数信息得到启动动效中第2帧图像帧的参数信息,以此类推,电子设备100可以根据差值算法根据启动动效中第2帧图像帧的参数信息得到启动动效中第3帧图像帧的参数信息,电子设备100可以根据差值算法根据启动动效中第N-1帧图像帧的参数信息得到启动动效中第N帧图像帧的参数信息等等,直至电子设备100根据插值算法根据启动动效中第M-1帧图像帧的参数信息得到启动动效中第M帧图像帧的参数信息。
接下来介绍电子设备100按照插值算法根据退出动效中图像帧的初始参数信息来计算启动动效中下一帧图像帧的参数信息的。
假设该应用程序的退出动效包括M帧图像帧,若电子设备100将启动动效播放完成之后,再接收用户退出第一应用程序的操作,则退出动效中图像帧的初始参数信息是电子设备100已计算得到的启动动效中第M帧图像帧的参数信息。若电子设备100在启动动效播放完成之前(例如启动动效播放到了第N帧图像帧,N小于M),再接收用户退出第一应用程序的操作,则退出动效中图像帧的初始参数信息是电子设备100当前显示的启动动效中的第N帧图像帧的参数信息。
若电子设备100在启动动效播放完成之前(例如启动动效播放到了第N帧图像帧),接收用户退出第一应用程序的操作,电子设备100开始播放第一应用程序的退出动效。电子设备100可以按照插值算法根据当前图像帧的参数信息得到下一帧图像帧的参数信息。
具体的,电子设备100获取到退出动效的图像帧的初始参数信息,该退出动效的图像帧的初始参数信息可以是退出动效中第1帧图像帧的参数信息,退出动效的图像帧的初始参数信息可以是启动动效中第N帧图像帧的参数信息。电子设备100可以根据差值算法根据退出动效的图像帧的初始参数信息得到退出动效中图像帧的第2帧图像帧信息,以此类推,电子设备100可以根据差值算法根据退出动效中图像帧的第2帧图像帧信息得到退出动效中图像帧的第3帧图像帧信息,直至电子设备100可以根据差值算法根据退出动效中图像帧的第N-1帧图像帧信息得到退出动效中图像帧的第N帧图像帧信息。
下面,将介绍差值算法的原理。即电子设备100如何根据插值算法实现根据动效中当前图像帧的参数信息得到下一帧图像帧的参数信息。
差值算法中参数的值不同,电子设备100根据根据动效中当前图像帧的参数信息得到下一帧图像帧的参数信息的值也不同。那么电子设备100播放的动效得到的动效曲线也不同
示例性的,如图11所示,图11示例性示出了几种插值算法的动效曲线的效果示意图。
如图11中的(a)所示,图11中的(a)示例性示出了第一种匀速的动效曲线。即电子设备100播放的启动动效或退出动效中任意相邻两帧图像帧之间的切换时间是相等的。
如图11中的(b)所示,图11中的(b)示例性示出了第二种减速的动效曲线。即电子设备100播放的启动动效或退出动效中按顺序从前往后相邻两帧图像帧之间的切换时间依次减少。
如图11中的(c)所示,图11中的(c)示例性示出了第三种加速的动效曲线。即电子设备100播放的启动动效或退出动效中按顺序从前往后相邻两帧图像帧之间的切换时间依次增加。
动效曲线还可以包括其他的类型,例如渐入渐出的运动曲线等等,本申请在此不在一一列举。
插值算法可以通过如下公式根据动效中当前图像帧的参数信息得到下一帧图像帧的参数信息:
a=k*x/m公式(1)
V=v+a*t公式(2)
P=p+V*t公式(3)
如公式(1)、公式(2)和公式(3)所示,插值算法可以通过公式(1)、公式(2)和公式(3)根据当前图像帧的参数信息得到下一帧图像帧的参数信息。在公式(1)、公式(2)和公式(3),a表示加速度,k表示刚性,根据弹簧的胡可定理,得到k=-F/x,其中,x表示弹簧形变的长度,F表示使弹簧发生形变的长度为x时收到的力,根据牛顿力学公式,F可以表示为F=m*a,其中,m为物体的指令。根据公式k=-F/x和公式F=m*a,可以的带加速度a=-k*x/m。
v表示物体的初始速度,V表示物体的下一时刻的速度,p表示物体的初始位置,P表示物体的下一时刻的位置,t表示当前电子设备100计算的是启动动效或者退出动效中的第几帧图像帧的参数信息。
需要说明的是,当电子设备100在计算启动动效中的图像帧的参数信息时,公式(3)中的v为正数;当电子设备100在计算退出动效中的图像帧的参数信息时,公式(3)中的v为负数。
这样,差值算法可以通过将当前图像帧的参数信息作为公式(3)的输入p,通过公式(3)输出P,得到下一帧图像帧的参数信息。
示例性的,电子设备100正在显示启动动效中的第1帧图像帧,电子设备100需要在固定时间内根据第1帧图像帧的参数信息,得到第2帧图像帧的参数信息,电子设备100根据第2帧图像帧的参数信息合成第2图像帧。
若第1帧图像帧的预设位置信息为(x,y),其中,x为第1帧图像帧的长度,y为第1帧图像帧的宽度。电子设备100将第1帧图像帧的位置信息(x,y)输入上述公式(3),上述公式(3)输出第2帧图像帧的位置信息(x1,y1),其中,x1=x+v+k*x/m,y1=y+v+k*x/m。其中,v为正数。
示例性的,电子设备100正在显示启动动效中的第N帧图像帧,此时,电子设备100接收用户退出第一应用程序的操作,电子设备100需要在固定时间内根据第N帧图像帧的参数信息,得到退出动效中的第1帧图像帧的参数信息,电子设备100根据退出动效中的第1帧图像帧的参数信息合成并显示退出动效中的第1帧图像帧。
若启动动效中第N帧图像帧的预设位置信息为(x,y),其中,x为启动动效中第N帧图像帧的长度,y为启动动效中第N帧图像帧的宽度。电子设备100将启动动效中第N帧图像帧的位置信息(x,y)输入上述公式(3),上述公式(3)输出退出动效中的第2帧图像帧的位置信息(x1,y1),其中,x1=x+v+k*x/m,y1=y+v+k*x/m。其中,v为负数。
为了便于理解本申请,本申请实施例以匀速的动效曲线对插值算法的执行效果进行说明。
当动效曲线为匀速的动效曲线时,公式(1)、公式(2)和公式(3)的a=0,v为固定值。当电子设备100在计算启动动效中的图像帧的参数信息时,v为正数;当电子设备100在计算退出动效中的图像帧的参数信息时,v为负数。
则插值算法可以通过如下公式根据当前图像帧的参数信息得到下一帧图像帧的参数信息:
P=p+v*t公式(4)
如公式(4)所示,P表示物体的初始位置,p表示物体的下一时刻的位置,t表示时间。这样,物理引擎可以通过将当前图像帧的参数信息作为公式(3)的输入p,通过公式(3)输出P,得到下一帧图像帧的参数信息。
示例性的,电子设备100正在显示启动动效中的第1帧图像帧,电子设备100需要在固定时间内根据第1帧图像帧的参数信息,得到第2帧图像帧的参数信息,电子设备100根据第2帧图像帧的参数信息合成第2图像帧。
若第1帧图像帧的位置信息为(x,y),其中,x为第1帧图像帧的预设长度,y为第1帧图像帧的预设宽度。图层合成模块将第2帧图像帧的位置信息(x,y)输入上述公式(3),上述公式(3)输出第2帧图像帧的目标位置信息(x1,y1),其中,x1=x+v,y1=y+v。
示例性的,电子设备100正在显示启动动效中的第N帧图像帧,启动动效中的第N帧图像帧的位置信息为(x+Nv,y+Nv),此时,电子设备100接收用户退出第一应用程序的操作,电子设备100需要在固定时间内根据第N帧图像帧的参数信息,得到退出动效中的第1帧图像帧的参数信息,电子设备100根据退出动效中的第1帧图像帧的参数信息合成并显示退出动效中的第1帧图像帧。
若启动动效中第N帧图像帧的预设位置信息为(x+N*v,y+N*v),其中,x+N*v为启动动效中第N帧图像帧的长度,y+N*v为启动动效中第N帧图像帧的宽度。电子设备100将启动动效中第N帧图像帧的位置信息(x+Nv,y+Nv)输入上述公式(3),上述公式(3)输出退出动效中的第1帧图像帧的位置信息(x1,y1),其中,x1=x+N*v-v,y1=y+N*v-v。
这样,电子设备100可以根据插值算法对启动动效或退出动效中当前显示图像帧的参数信息计算得到下一帧图像帧的参数信息。电子设备100根据下一帧图像帧的参数信息合成下一帧图像帧,并在显示器上显示。这样,电子设备100复用启动过程中的animationleash对象做退出动效,启动动效与退出动效在切换时,不会出现突变的情况,电子设备100播放额动效更加自然。
如图12所示,图12示例性示出了另一种电子设备100播放启动动效和播放退出动效的示意图。
图12示所述的流程图包含第一应用程序、AMS(activitity管理服务)模块和WMS(窗口管理服务)模块、SF(surface flinger,图层合成)模块。
在一些实施例中,图12示所述的流程图也可以不包括图层合成模块,本申请在此不做限定。
首先,电子设备100接收用户开启第一应用程序的操作,响应于用户开启第一应用程序的操作,电子设备100通过AMS模块和WMS模块创建第一annimation leash对象。之后,WMS模块将第一annimation leash对象的标识发送至第一应用程序,第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序开始做启动动效。
具体的,S1001-S1008描述了AMS模块和WMS模块创建第一annimation leash对象的方法流程。需要说明的是,AMS模块和WMS模块创建第一annimation leash对象的方法流程可以包括比S1001-S1008更多或更少的步骤,本申请在此不做限定。并且,本申请对于S1001-S1008中每个步骤的执行顺序不做限定。
S1201、第一应用程序启动。
S1202、第一应用程序启动activity。
S1203、第一应用程序向AMS(activitity manager service,activitity管理服务)模块模块发送binder指令。
S1204、AMS模块设置activity为可见的。
S1205、AMS模块设置activity的生命周期。
S1206、AMS模块向窗口管理服务(window manager service,WMS)模块发送准备开启启动动效的通知。
S1207、WMS模块接收并响应AMS模块发送的准备开启启动动效的通知,WMS模块准备开始做动画,并创建第一animation leash对象。
S1208、WMS模块将第一animation leash对象发送至第一应用程序。
第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序开始做启动动效。第一应用程序确定出启动动效中每一帧图像帧的参数信息,之后,第一应用程序根据启动动效中每一帧图像帧的参数信息改变第一animation leash对象绘制的窗口的属性,第一应用程序将启动动效中每一帧图像帧的参数信息发送至SF模块,由SF模块合成图像帧,之后,SF模块将合成的图像帧显示在第一animation leash对象绘制的窗口中。
或者,第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序告知SF模块开始做启动动效。第一应用程序确定出启动动效中图像帧的初始参数信息,之后,第一应用程序将启动动效中图像帧的初始参数信息发送至SF模块,SF模块根据启动动效中图像帧的初始参数信息确定出启动动效中每一帧图像帧的参数信息,并根据启动动效中每一帧图像帧的参数信息合成图像帧,SF模块根据启动动效中每一帧图像帧的参数信息改变第一animation leash对象绘制的窗口的属性,SF模块将合成的图像帧显示在第一animation leash对象绘制的窗口中。
具体的,S1009-S1012描述了第一应用程序如何播放启动动效的方法流程。需要说明的是,第一应用程序如何播放启动动效的方法流程可以包括比S1009-S1012更多或更少的步骤,本申请在此不做限定。并且,本申请对于S1009-S1012中每个步骤的执行顺序不做限定。
S1209、第一应用程序获取启动动效中帧图像帧的初始参数信息。
S1210、第一应用程序将启动动效中帧图像帧的初始参数信息发送至图层合成模块。
S1211、图层合成模块根据启动动效中图像帧的初始参数信息得到下一帧图像帧的目标参数信息,并根据下一帧图像帧的目标参数信息改变第一animation leash对象的属性值。
S1212、图层合成模块将启动动画发送至显示器进行播放。
电子设备100接收用户退出第一应用程序的操作,电子设备100可以在播放启动动效的过程中接收用户退出第一应用程序的操作,也可以在播放完启动动效之后接收用户退出第一应用程序的操作,本申请在此不做限定。响应于用户退出第一应用程序的操作,电子设备100通过AMS模块和WMS模块复用第一annimation leash对象。之后,WMS模块将第一annimation leash对象的标识发送至第一应用程序,第一应用程序接收到第一annimationleash对象的标识之后,第一应用程序开始做退出动效。
具体的,S1213-S1216描述了AMS模块和WMS模块创建第二annimation leash对象的方法流程。需要说明的是,AMS模块和WMS模块创建第二annimation leash对象的方法流程可以包括比S1213-S1216更多或更少的步骤,本申请在此不做限定。并且,本申请对于S1213-S1216中每个步骤的执行顺序不做限定。
S1213、第一应用程序退出。
S1214、第一应用程序向WMS模块发送binder指令。
对于S1201-S1214中的具体解释,请参考S501和S514中的实施例,本申请在此不再赘述。
S1215、WMS模块接收并响应binder指令,复用第一animation leash对象。
第一animation leash对象位电子设备100在播放启动动效时创建的animationleash对象。电子设备100在播放退出动效时继续沿用第一animation leash对象。这样,可以使得启动动效和退出动效为一段完整的动效,不会出现启动动效和退出动效切换时,出现过渡不自然的问题。
S1216、WMS模块将第一animation leash对象发送至第一应用程序。
第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序开始做退出动效。第一应用程序确定出退出动效中每一帧图像帧的参数信息,之后,第一应用程序根据退出动效中每一帧图像帧的参数信息改变第一animation leash对象绘制的窗口的属性,第一应用程序将退出动效中每一帧图像帧的参数信息发送至SF模块,由SF模块合成图像帧,之后,SF模块将合成的图像帧显示在第一animation leash对象绘制的窗口中。
或者,第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序告知SF模块开始做退出动效。第一应用程序确定出退出动效中图像帧的初始参数信息,之后,第一应用程序将退出动效中图像帧的初始参数信息发送至SF模块,SF模块根据退出动效中图像帧的初始参数信息确定出退出动效中每一帧图像帧的参数信息,并根据退出动效中每一帧图像帧的参数信息合成图像帧,SF模块根据退出动效中每一帧图像帧的参数信息改变第一animation leash对象绘制的窗口的属性,SF模块将合成的图像帧显示在第一animation leash对象绘制的窗口中。
具体的,S1217-S1220描述了AMS模块和WMS模块复用第一annimation leash对象的方法流程。需要说明的是,AMS模块和WMS模块创建第一annimation leash对象的方法流程可以包括比S1217-S1220更多或更少的步骤,本申请在此不做限定。并且,本申请对于S1217-S1220中每个步骤的执行顺序不做限定。
S1217、第一应用程序获取退出动效中图像帧的初始参数信息。
首先,第一应用程序获取到退出动效中图像帧的初始参数信息,退出动效中图像帧的初始参数信息是退出动效中第1帧图像帧的参数信息。第一应用程序可以根据差值算法根据退出动效中第1帧图像帧的参数信息得到退出动效中第2帧图像帧的参数信息,以此类推,第一应用程序可以根据差值算法根据退出动效中第2帧图像帧的参数信息得到退出动效中第3帧图像帧的参数信息,第一应用程序可以根据差值算法根据退出动效中第N-1帧图像帧的参数信息得到退出动效中第N帧图像帧的参数信息等等,直至电子设备100根据插值算法根据退出动效中第M-1帧图像帧的参数信息得到退出动效中第M帧图像帧的参数信息。退出动效包括M帧图像帧。也即第一应用程序是按照插值算法根据当前显示的图像帧的参数信息得到下一帧图像帧的参数信息的。
在一些实施例中,第一应用程序在播放启动动效的过程中,例如电子设备100当前显示的是启动动效中的第N帧图像帧,电子设备100接收到退出第一应用程序的第二操作,这时,第一应用程序获取到退出动效中图像帧的初始参数信息为启动动效中的第N帧图像帧的参数信息。
具体的,请参考后续图13所述的实施例,本申请在此不再赘述。
S1218、第一应用程序将退出动效中图像帧的初始参数信息发送至图层合成模块。
S1219、图层合成模块根据退出动效中图像帧的初始参数信息得到下一帧图像帧的目标参数信息,并根据下一帧图像帧的目标参数信息改变第一animation leash对象的属性值。
通过S518和S519,第一应用程序将动效计算的任务事项发送至图层合成模块,由图层合成模块去做动效计算。这样,可以极大地改善目前UI线程处理动效计算时出现的丢帧问题。
具体的,图层合成模块在原有线程的基础上,新建了一个动效处理线程,该线程的任务为计算电子设备100中所有UI线程处理的动效计算的任务事项。
具体的,图层合成模块接收到第一应用程序发送的退出动效中图像帧的初始参数信息,根据退出动效中图像帧的初始参数信息计算得到下一帧图像帧的目标参数信息。图层合成模块将下一帧图像帧的目标参数信息发送至WMS模块,WMS模块根据下一帧图像帧的目标参数信息改变第一animation leash对象的属性值,WMS模块根据第一animationleash对象的属性值绘制第二窗口。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第一animation leash对象的属性值的属性值也包括窗口大小、显示时间、显示位置、透明度和显示元素等信息。
可以理解的是,第一animation leash对象可以是悬浮显示在电子设备100的用户界面之上的一个窗口。之后,图层合成模块根据启动动效中图像帧的初始参数信息,对该“窗口”的属性进行设置,使得该窗口可以按照启动动效中预设图像帧的显示顺序和显示状态显示图像。
S1220、图层合成模块将退出动画发送至显示器进行播放。
图层合成模块根据更新后的图像帧的参数信息合成图像帧之后,将合成的图像帧发送至显示器进行显示。
电子设备100如何播放退出动效的,在前述的技术术语解释中已解释,请参考前述实施例,本申请在此不再赘述。
在一些实施例中,S1218、S1219和S1920也可以替换为下面的S1218和S1219:
S1218、第一应用程序根据根据退出动效中图像帧的初始参数信息得到下一帧图像帧的目标参数信息,并根据下一帧图像帧的目标参数信息改变第一animation leash对象的属性值。
具体的,第一应用程序根据退出动效中图像帧的初始参数信息计算得到下一帧图像帧的目标参数信息。第一应用程序将下一帧图像帧的目标参数信息发送至WMS模块,WMS模块根据下一帧图像帧的目标参数信息改变第一animation leash对象的属性值,WMS模块根据第一animation leash对象的属性值绘制第二窗口。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第一animation leash对象的属性值的属性值也包括窗口大小、显示时间、显示位置、透明度和显示元素等信息。
可以理解的是,第一animation leash对象可以是悬浮显示在电子设备100的用户界面之上的一个窗口。之后,图层合成模块根据启动动效中图像帧的初始参数信息,对该“窗口”的属性进行设置,使得该窗口可以按照启动动效中预设图像帧的显示顺序和显示状态显示图像。
S1219、第一应用程序将退出动画发送至显示器进行播放。
第一应用程序根据更新后的图像帧的参数信息合成图像帧之后,将合成的图像帧发送至显示器进行显示。
电子设备100如何播放退出动效的,在前述的技术术语解释中已解释,请参考前述实施例,本申请在此不再赘述。
如图13所示,图13示例性示出了本申请实施例提供的一种应用程序动效衔接的方法流程图。
S1301、电子设备100接收用户的第一操作启动第一应用程序的启动动效(第一动效)播放的任务事项。
第一操作为开启第一应用程序的操作。第一操作可以是点击第一应用程序的图标的操作。示例性的,第一操作可以是图1G所示的点击华为视频应用程序1013的图标的操作。
开启第一应用的第一操作还可以是其他的操作,本申请在此不做限定。
S1302、电子设备100新建第一animation leash对象。
电子设备100接收用户的第一操作,电子设备100开始播放启动动效,在电子设备100开始播放启动动效之前,电子设备100需创建一个animation leash对象(例如第一animation leash对象),电子设备100在第一animation leash对象的基础上做启动动效。
可以理解的是,第一animation leash对象可以是悬浮显示在电子设备100的用户界面之上的一个“窗口”。该“窗口”的属性是预设好的。由于启动动效中每一帧图像帧的参数信息可以是不同的,因此,电子设备100在得到每一帧图像帧的参数信息之后,对该“窗口”的属性进行改变,使得该“窗口”可以按照每一帧图像帧的参数信息将该图像帧显示在电子设备100的用户界面上。
S1303、电子设备100根据第一animation leash对象做启动动效。
具体的,首先电子设备100需获取到启动动效中图像帧的参数信息,之后电子设备100根据第一animation leash对象绘制第一窗口,电子设备100根据启动动效中图像帧的参数信息改变第一窗口的属性,电子设备100根据图像帧的参数信息合成图像帧,电子设备100将该图像帧显示在第一窗口中。
在电子设备100根据第一animation leash对象做启动动效之前,为了使得动效线程合成的图像帧在显示器上显示的动效效果更加流畅。电子设备100需确定出插值算法的参数信息,插值算法的参数信息包括:动效类型、弹性力度、等等。动效类型可以是例如匀速的动效类型、渐入渐出的动效类型、加速的动效类型等等。弹性系数即图11中所述的刚性k。插值算法的参数信息还可以包括其他更多的参数信息,例如阻尼系数等等,本身请在此不做限定。
可以理解的是,不同的应用程序的插值算法的参数信息可以是相同的,也可以不相同,本申请在此不做限定。
具体的,首先电子设备100需获取到启动动效中图像帧的参数信息,之后电子设备100根据第一animation leash对象和图像帧的参数信息合成图像帧,电子设备100将该图像帧送至显示器进行显示。
电子设备100是根据插值算法得到启动动效中图像帧的参数信息的。
首先,电子设备100获取到启动动效中图像帧的初始参数信息,启动动效中图像帧的初始参数信息可以理解为启动动效中第1帧图像帧的参数信息。电子设备100可以根据差值算法根据启动动效中第1帧图像帧的参数信息得到启动动效中第2帧图像帧的参数信息,以此类推,电子设备100可以根据差值算法根据启动动效中第2帧图像帧的参数信息得到启动动效中第3帧图像帧的参数信息,电子设备100可以根据差值算法根据启动动效中第N-1帧图像帧的参数信息得到启动动效中第N帧图像帧的参数信息等等,直至电子设备100根据插值算法根据启动动效中第M-1帧图像帧的参数信息得到启动动效中第M帧图像帧的参数信息。启动动效包括M帧图像帧。也即电子设备100是按照插值算法根据当前显示的图像帧的参数信息得到下一帧图像帧的参数信息的。
这部分内容在前述实施例中已详细介绍请参考前述实施例的描述,本申请在此不再赘述。
电子设备100获取到启动动效中图像帧的参数信息之后,电子设备100根据第一animation leash对象和图像帧的参数信息合成图像帧,电子设备100再将该图像帧送至显示器进行显示。具体的,可以参考图1A-图1M、图2A-图2M、图3A-图3E所示的实施例,本申请在此不再赘述。
S1304、电子设备100接收用户的第二操作,第二操作用于指示电子设备100播放第一应用程序的退出动效(第二动效)的任务事项。
第二操作为退出第一应用程序的操作。第二操作可以是作用于电子设备100的屏幕下边沿向屏幕上方滑动的操作。示例性的,第二操作可以是图8A所示的作用并垂直于电子设备100的屏幕下边沿向屏幕上方的滑动操作,第二操作可以是图9A所示的作用并垂直于电子设备100的屏幕下边沿向屏幕右上方的滑动操作,第二操作可以是图10A所示的作用并垂直于电子设备100的屏幕下边沿向屏幕左上方的滑动操作。第二操作还可以是作用于“三键”中的返回主界面键的点击操作。需要说明的是,“三键”中的返回主界面键可以是实体按键,也可以是虚拟按键,本申请在此不做限定。退出第一应用的第二操作还可以是其他的操作,本申请在此不做限定。
S1305、电子设备100复用第一animation leash对象做退出动效。
具体的,首先电子设备100需获取到退出动效中图像帧的参数信息,之后电子设备100根据第一animation leash对象绘制第二窗口,电子设备100根据启动动效中图像帧的参数信息改变第一窗口的属性,电子设备100根据图像帧的参数信息合成图像帧,电子设备100将该图像帧显示在第二窗口中。
电子设备100是根据插值算法得到退出动效中图像帧的参数信息的。
在一些实施例中,电子设备100已播放完启动动效,电子设备100显示的是第一应用程序的主界面,电子设备100接收到退出第一应用程序的第二操作,这时,电子设备100获取到退出动效中图像帧的初始参数信息为启动动效中的第M帧图像帧的参数信息。启动动效中的第M帧图像帧为启动动效中的最后一帧图像帧。
首先,电子设备100获取到退出动效中图像帧的初始参数信息,退出动效中图像帧的初始参数信息是退出动效中第1帧图像帧的参数信息。电子设备100可以根据差值算法根据退出动效中第1帧图像帧的参数信息得到退出动效中第2帧图像帧的参数信息,以此类推,电子设备100可以根据差值算法根据退出动效中第2帧图像帧的参数信息得到退出动效中第3帧图像帧的参数信息,电子设备100可以根据差值算法根据退出动效中第N-1帧图像帧的参数信息得到退出动效中第N帧图像帧的参数信息等等,直至电子设备100根据插值算法根据退出动效中第M-1帧图像帧的参数信息得到退出动效中第M帧图像帧的参数信息。退出动效包括M帧图像帧。也即电子设备100是按照插值算法根据当前显示的图像帧的参数信息得到下一帧图像帧的参数信息的。
在另一些实施例中,电子设备100在播放启动动效的过程中,例如电子设备100当前显示的是启动动效中的第N帧图像帧,电子设备100接收到退出第一应用程序的第二操作,这时,电子设备100获取到退出动效中图像帧的初始参数信息为启动动效中的第N帧图像帧的参数信息。
首先,电子设备100获取到退出动效中图像帧的初始参数信息,退出动效中图像帧的初始参数信息是退出动效中第1帧图像帧的参数信息。电子设备100可以根据差值算法根据退出动效中第1帧图像帧的参数信息得到退出动效中第2帧图像帧的参数信息,以此类推,电子设备100可以根据差值算法根据退出动效中第2帧图像帧的参数信息得到退出动效中第3帧图像帧的参数信息,电子设备100可以根据差值算法根据退出动效中第N-1帧图像帧的参数信息得到退出动效中第N帧图像帧的参数信息等等,启动动效中第N帧图像帧为退出动效中的最后一帧图像帧。也即电子设备100是按照插值算法根据当前显示的图像帧的参数信息得到下一帧图像帧的参数信息的。
这部分内容在前述实施例中已详细介绍请参考前述实施例的描述,本申请在此不再赘述。
电子设备100获取到退出动效中图像帧的参数信,电子设备100复用启动动效中的第一animation leash对象,之后,电子设备100根据第一animation leash对象绘制第二窗口,电子设备100根据退出动效中图像帧的参数信息合成图像帧,电子设备100将合成的图像帧显示在第二窗口上。具体的,可以参考图8A-图8H、图9A-图9F、图10A-图10F所示的实施例,本申请在此不再赘述。
这样的话,电子设备100在播放退出动效时,复用的是电子设备100播放启动动效时创建的第一animation leash对象,一方面,可以理解为,启动动效和退出东西为一段动效,不会出现启动动效和退出动效切换时出现过渡不自然的现象,提高了用户体验;另一方面,电子设备100通过差值算法根据当前图像帧的参数信息得到下一帧图像帧的参数信息,再根据下一帧图像帧的参数信息合成下一帧图像。这样,电子设备100播放的启动动效和退出动效的效果更加自然和流畅。
在一些实施例中,退出第一应用程序的第二操作的方向对电子设备100播放的退出动效的效果也有影响。
如图8H所示,图8H示例性示出了退出第一应用程序的第二操作为作用并垂直于电子设备100的屏幕下边沿向屏幕上方的滑动操作时,退出动效中图像帧的中心点的移动轨迹示意图。
当退出第一应用程序的第二操作为作用并垂直于电子设备100的屏幕下边沿向屏幕右上方的滑动操作时,退出动效中图像帧的中心点的移动轨迹向电子设备100的右侧偏移。如图9F所示,图9F示例性示出了退出第一应用程序的第二操作为作用并垂直于电子设备100的屏幕下边沿向屏幕右上方的滑动操作时,退出动效中图像帧的中心点的移动轨迹。与图8H所示的图像帧的中心点的移动轨迹,图9F所示的退出动效中图像帧的中心点的移动轨迹向电子设备100的右侧偏移。
具体解释是,假设该应用程序的启动动效包括M帧图像帧,例如电子设备100当前显示的是启动动效中的第N帧图像帧,电子设备100接收到退出第一应用程序的第二操作,电子设备100开始播放退出动效。首先,电子设备100需获取到退出动效中的第1帧图像帧的参数信息,由前述分析可知,电子设备100通过启动动效中的第N帧图像帧的参数信息得到退出动效中的第1帧图像帧的参数信息。第N帧图像帧的位置信息可以表示为(x+N*v,y+N*v),由于第二操作为作用并垂直于电子设备100的屏幕下边沿向屏幕右上方的滑动操作,因此电子设备100输入插值算法中的第N帧图像帧的位置信息的横坐标会增大,例如,电子设备100输入插值算法中的第N帧图像帧的位置信息为(x+N*v+x0,y+N*v),x0大于0。电子设备100通过插值算法得到的退出动效中的第1帧图像帧的位置信息为(x+N*v+x0-v,y+N*v-v),因此退出动效中的第1帧图像帧会向电子设备100的屏幕右侧偏移。以此类推,退出动效中的每一帧图像帧会向电子设备100的屏幕右侧偏移。
当退出第一应用程序的第二操作为作用并垂直于电子设备100的屏幕下边沿向屏幕左上方的滑动操作时,退出动效中图像帧的中心点的移动轨迹向电子设备100的左侧偏移。如图10F所示,图10F示例性示出了退出第一应用程序的第二操作为作用并垂直于电子设备100的屏幕下边沿向屏幕左上方的滑动操作时,退出动效中图像帧的中心点的移动轨迹。与图8H所示的图像帧的中心点的移动轨迹,图10F所示的退出动效中图像帧的中心点的移动轨迹向电子设备100的左侧偏移。
具体解释是,假设该应用程序的启动动效包括M帧图像帧,例如电子设备100当前显示的是启动动效中的第N帧图像帧,电子设备100接收到退出第一应用程序的第二操作,电子设备100开始播放退出动效。首先,电子设备100需获取到退出动效中的第1帧图像帧的参数信息,由前述分析可知,电子设备100通过启动动效中的第N帧图像帧的参数信息得到退出动效中的第1帧图像帧的参数信息。第N帧图像帧的位置信息可以表示为(x+N*v,y+N*v),由于第二操作为作用并垂直于电子设备100的屏幕下边沿向屏幕左上方的滑动操作,因此电子设备100输入插值算法中的第N帧图像帧的位置信息的横坐标会增大,例如,电子设备100输入插值算法中的第N帧图像帧的位置信息为(x+N*v-x0,y+N*v),x0大于0。电子设备100通过插值算法得到的退出动效中的第1帧图像帧的位置信息为(x+N*v-x0-v,y+N*v-v),因此退出动效中的第1帧图像帧会向电子设备100的屏幕右侧偏移。以此类推,退出动效中的每一帧图像帧会向电子设备100的屏幕左侧偏移。
具体的,对于插值算法的解释,可以参考前述实施例中的描述,本申请在此不再赘述。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (18)

1.一种应用程序动效衔接的方法,其特征在于,所述方法包括:
所述电子设备接收用户的第一操作,所述第一操作用于启动播放第一应用程序的第一动效;
根据所述第一操作,所述电子设备将所述第一动效中的第一图像帧显示在第一动效启动animationleach对象绘制的第一窗口中;
所述电子设备接收用户的第二操作,所述第二操作用于指示所述电子设备播放所述第一应用程序的第二动效;
根据所述第二操作,所述电子设备将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中。
2.根据权利要求1所述的方法,其特征在于,在所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中之前,所述方法还包括:
所述电子设备基于所述第一动效中所述第一图像帧的第一参数信息合成所述第一图像帧;
在所述电子设备将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中之前,所述方法还包括:
所述电子设备基于所述第二动效中所述第二图像帧的第二参数信息合成所述第二图像帧。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述电子设备接收用户的第二操作,包括:
所述电子设备在显示所述第一图像帧时,接收到所述第二操作。
4.根据权利要求1-2任一项所述的方法,其特征在于,在所述电子设备接收所述第二操作之前,所述方法还包括:
所述电子设备在播放完所述第一动效后,显示所述第一应用程序的第一用户界面。
5.根据权利要求3-4任一项所述的方法,其特征在于,所述第二图像帧为所述第二动效中的首帧图像帧;
在所述电子设备将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中之前,所述方法还包括:
所述电子设备基于所述第一参数信息,确定出所述第二参数信息和所述第二窗口的属性信息;
所述电子设备通过所述第一animation leach对象基于所述第二窗口的属性信息,绘制出所述第二窗口。
6.根据权利要求5所述的方法,其特征在于,所述电子设备基于所述第一参数信息,确定出所述第二参数信息,包括:
所述电子设备基于所述第一参数信息插值运算出所述第二参数信息。
7.根据权利要求5-6任一项所述的方法,其特征在于,在所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中之前,所述方法还包括:
所述电子设备在所述surfaceflinger中新建动效处理线程;
所述电子设备基于所述第一参数信息,确定出所述第二参数信息,包括:
所述电子设备通过所述动效处理线程根据所述第一图像帧的第一参数信息确定出所述第二图像帧的第二参数信息。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一参数信息包括以下任意一项或多项:所述第一图像帧的中心点的位置、所述第一图像帧的窗口尺寸、所述第一图像帧的透明度、所述第一图像帧的圆角大小;
所述第二参数信息包括以下任意一项或多项:所述第二图像帧的中心点的位置、所述第二图像帧的窗口尺寸、所述第二图像帧的透明度、所述第二图像帧的圆角大小;
所述第二窗口的属性信息包括以下任意一项或多项:所述第二窗口的中心点的位置、所述第二窗口的窗口尺寸、所述第二窗口的透明度、所述第二窗口的圆角大小。
9.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器、一个或多个存储器;
所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:
接收用户的第一操作,所述第一操作用于启动播放第一应用程序的第一动效;
根据所述第一操作,将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中;
接收用户的第二操作,所述第二操作用于指示所述电子设备播放所述第一应用程序的第二动效;
根据所述第二操作,将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中。
10.根据权利要求9所述的电子设备,其特征在于,在所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中之前,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:
基于所述第一动效中所述第一图像帧的第一参数信息合成所述第一图像帧;
基于所述第二动效中所述第二图像帧的第二参数信息合成所述第二图像帧。
11.根据权利要求9-10任一项所述的电子设备,其特征在于,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:
在显示所述第一图像帧时,接收到所述第二操作。
12.根据权利要求9-10任一项所述的电子设备,其特征在于,在所述电子设备接收所述第二操作之前,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:
在播放完所述第一动效后,显示所述第一应用程序的第一用户界面。
13.根据权利要求11-12任一项所述的电子设备,其特征在于,所述第二图像帧为所述第二动效中的首帧图像帧;
在所述电子设备将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中之前,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:
基于所述第一参数信息,确定出所述第二参数信息和所述第二窗口的属性信息;
通过所述第一animation leach对象基于所述第二窗口的属性信息,绘制出所述第二窗口。
14.根据权利要求13任一项所述的电子设备,其特征在于,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:
基于所述第一参数信息插值运算出所述第二参数信息。
15.根据权利要求13-14任一项所述的电子设备,其特征在于,在所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中之前,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:
在所述surfaceflinger中新建动效处理线程;
通过所述动效处理线程根据所述第一图像帧的第一参数信息确定出所述第二图像帧的第二参数信息。
16.根据权利要求9-15任一项所述的电子设备,其特征在于,所述第一参数信息包括以下任意一项或多项:所述第一图像帧的中心点的位置、所述第一图像帧的窗口尺寸、所述第一图像帧的透明度、所述第一图像帧的圆角大小;
所述第二参数信息包括以下任意一项或多项:所述第二图像帧的中心点的位置、所述第二图像帧的窗口尺寸、所述第二图像帧的透明度、所述第二图像帧的圆角大小;
所述第二窗口的属性信息包括以下任意一项或多项:所述第二窗口的中心点的位置、所述第二窗口的窗口尺寸、所述第二窗口的透明度、所述第二窗口的圆角大小。
17.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行权利要求1至8任一项所述的方法。
18.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如权利要求1至8任一项所述的方法。
CN202110616128.0A 2021-05-25 2021-06-02 一种应用程序动效衔接的方法及装置 Pending CN115390957A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP22810274.5A EP4318232A1 (en) 2021-05-25 2022-04-22 Method and apparatus for application animation linking
PCT/CN2022/088518 WO2022247541A1 (zh) 2021-05-25 2022-04-22 一种应用程序动效衔接的方法及装置
US18/517,661 US20240095988A1 (en) 2021-05-25 2023-11-22 Method and Apparatus for Animation Transition in Application

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110574091 2021-05-25
CN202110574091X 2021-05-25

Publications (1)

Publication Number Publication Date
CN115390957A true CN115390957A (zh) 2022-11-25

Family

ID=84114336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110616128.0A Pending CN115390957A (zh) 2021-05-25 2021-06-02 一种应用程序动效衔接的方法及装置

Country Status (4)

Country Link
US (1) US20240095988A1 (zh)
EP (1) EP4318232A1 (zh)
CN (1) CN115390957A (zh)
WO (1) WO2022247541A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117724772A (zh) * 2023-05-25 2024-03-19 荣耀终端有限公司 一种应用程序的退出控制方法和装置
CN117724781A (zh) * 2023-07-04 2024-03-19 荣耀终端有限公司 一种应用程序启动动画的播放方法和电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7477254B2 (en) * 2005-07-13 2009-01-13 Microsoft Corporation Smooth transitions between animations
US20090315897A1 (en) * 2008-06-24 2009-12-24 Microsoft Corporation Animation platform
CN110162343B (zh) * 2019-04-10 2023-04-07 北京梧桐车联科技有限责任公司 应用启动方法及装置、电子设备及存储介质
CN111127601A (zh) * 2019-12-25 2020-05-08 北京金山猎豹科技有限公司 一种动画切换方法、装置、电子设备及存储介质
CN111880877B (zh) * 2020-07-24 2023-10-31 上海米哈游天命科技有限公司 一种动画切换方法、装置、设备及存储介质
CN112882784A (zh) * 2021-02-09 2021-06-01 北京小米移动软件有限公司 一种应用界面显示方法、装置、智能设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117724772A (zh) * 2023-05-25 2024-03-19 荣耀终端有限公司 一种应用程序的退出控制方法和装置
CN117724781A (zh) * 2023-07-04 2024-03-19 荣耀终端有限公司 一种应用程序启动动画的播放方法和电子设备

Also Published As

Publication number Publication date
EP4318232A1 (en) 2024-02-07
US20240095988A1 (en) 2024-03-21
WO2022247541A1 (zh) 2022-12-01

Similar Documents

Publication Publication Date Title
WO2021103981A1 (zh) 分屏显示的处理方法、装置及电子设备
CN110119296B (zh) 切换父页面和子页面的方法、相关装置
CN112558825A (zh) 一种信息处理方法及电子设备
CN110647274A (zh) 一种界面显示方法及设备
WO2021115194A1 (zh) 一种应用图标的显示方法及电子设备
CN111240547A (zh) 跨设备任务处理的交互方法、电子设备及存储介质
CN114201097B (zh) 一种多应用程序之间的交互方法
CN112527174A (zh) 一种信息处理方法及电子设备
CN113778574A (zh) 卡片分享方法、电子设备及通信***
CN113132526A (zh) 一种页面绘制方法及相关装置
CN112068907A (zh) 一种界面显示方法和电子设备
WO2024055797A9 (zh) 一种录像中抓拍图像的方法及电子设备
CN113536866A (zh) 一种人物追踪显示方法和电子设备
CN116095413B (zh) 视频处理方法及电子设备
CN113448658A (zh) 截屏处理的方法、图形用户接口及终端
US20240095988A1 (en) Method and Apparatus for Animation Transition in Application
CN115442509A (zh) 拍摄方法、用户界面及电子设备
CN113079332B (zh) 移动终端及其录屏方法
CN115994006A (zh) 动画效果显示方法及电子设备
WO2022247542A1 (zh) 一种动效计算方法及装置
CN116700555B (zh) 动效处理方法及电子设备
WO2024139934A1 (zh) 应用程序多窗口展示方法和电子设备
US20240064397A1 (en) Video Shooting Method and Electronic Device
WO2023066177A1 (zh) 动画效果显示方法及电子设备
WO2024066976A1 (zh) 控件显示方法及电子设备

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