WO2022247541A1 - 一种应用程序动效衔接的方法及装置 - Google Patents
一种应用程序动效衔接的方法及装置 Download PDFInfo
- Publication number
- WO2022247541A1 WO2022247541A1 PCT/CN2022/088518 CN2022088518W WO2022247541A1 WO 2022247541 A1 WO2022247541 A1 WO 2022247541A1 CN 2022088518 W CN2022088518 W CN 2022088518W WO 2022247541 A1 WO2022247541 A1 WO 2022247541A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image frame
- electronic device
- animation
- parameter information
- window
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 230000000694 effects Effects 0.000 claims description 443
- 238000012545 processing Methods 0.000 claims description 42
- 230000015654 memory Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 8
- 230000002194 synthesizing effect Effects 0.000 claims description 5
- 230000007704 transition Effects 0.000 abstract description 11
- 238000004422 calculation algorithm Methods 0.000 description 63
- 238000004364 calculation method Methods 0.000 description 41
- 230000004913 activation Effects 0.000 description 39
- 238000010586 diagram Methods 0.000 description 35
- 230000015572 biosynthetic process Effects 0.000 description 24
- 238000007726 management method Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 24
- 238000003786 synthesis reaction Methods 0.000 description 24
- 239000000203 mixture Substances 0.000 description 20
- 230000006870 function Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 17
- 230000007423 decrease Effects 0.000 description 16
- 230000008859 change Effects 0.000 description 14
- 239000011230 binding agent Substances 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 10
- 238000010295 mobile communication Methods 0.000 description 6
- 238000009877 rendering Methods 0.000 description 6
- 230000005236 sound signal Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013016 damping Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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/04883—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44594—Unloading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
Definitions
- the present application relates to the field of terminal technology, and in particular to a method and device for dynamic connection of application programs.
- APP application programs
- Different APPs can provide users with different service functions.
- the electronic device will play a dynamic effect during the startup phase or the exit phase of the application program.
- the electronic device 100 when the electronic device 100 is playing the start-up animation of the first application program, upon receiving an operation from the user to exit the first application, the electronic device 100 will stop playing the start-up animation, create another exit animation, and start playing the exit Motion.
- the startup animation and the exit animation are two-stage animation effects, when the two-stage animation effects are switched, the user may feel a sudden change in the screen, resulting in a poor experience. Therefore, it is an urgent problem to solve the natural transition between starting animation and exiting animation.
- the second image frame is the first image frame in the second animation effect
- the method further includes: the electronic device determines the second parameter information and the second window based on the first parameter information attribute information; the electronic device draws the second window based on the attribute information of the second window through the first animation leach object.
- the electronic device needs to change the window properties drawn by the first animation leach object according to the parameter information of each image frame in the start animation or exit animation effect, so that the window drawn by the first animation leach object can display the start animation effect or exit animation effect in each image frame.
- the interpolation algorithm can obtain the target parameter information according to the preset parameter information of the image frame through formula (1), formula (2) and formula (3).
- a represents acceleration
- k represents rigidity, according to the Hu Ke theorem of spring
- F represents to make The force received when the deformed length of the spring is x, according to Newton's mechanics formula
- v represents the initial velocity of the object
- V represents the speed of the object at the next moment
- P represents the initial position of the object
- p represents the position of the object at the next moment
- t represents whether the current electronic device 100 calculates whether to start or exit the animation
- the parameter information of the first image frame in It should be noted that when the electronic device 100 is calculating the parameter information of the image frame in the start motion effect, v in formula (3) is a positive number; when the electronic device 100 is calculating the parameter information of the image frame in the exit motion effect When , v in formula (3) is a negative number.
- the electronic device can be centrally scheduled The task of dynamic effect calculation for all applications; on the other hand, it solves the problem that the dynamic effect calculation cannot be scheduled in time when calculating in the UI thread, which leads to the discarding of some image frames in the animation effect, resulting in a jam when the animation effect is played The situation of pause makes the animation playback smoother.
- the first parameter information includes any one or more of the following: the position of the center point of the first image frame, the window size of the first image frame , the transparency of the first image frame, the rounded corner size of the first image frame;
- the second parameter information includes any one or more of the following: the position of the center point of the second image frame, the The window size of the second image frame, the transparency of the second image frame, the rounded corner size of the second image frame;
- the attribute information of the second window includes any one or more of the following: the second window The position of the center point of , the window size of the second window, the transparency of the second window, and the rounded corner size of the second window.
- the present application provides a computer-readable storage medium, including instructions.
- the instructions When the instructions are run on the electronic device, the electronic device is made to perform a motion calculation provided in any possible implementation of any of the above-mentioned aspects. method.
- the present application provides a computer program product containing instructions, which, when the computer program product is run on an electronic device, causes the electronic device to execute a motion effect provided in any possible implementation of any of the above aspects. Calculation method.
- Figure 1A- Figure 1M are a set of UI diagrams for starting motion effects provided by the embodiment of the present application.
- FIG. 2A-FIG. 2M are another set of UI diagrams for starting motion effects provided by the embodiment of the present application.
- 3A-3E are another set of UI diagrams for starting motion effects provided by the embodiment of the present application.
- Fig. 12 is a schematic diagram of another electronic device 100 provided by the embodiment of the present application to play the start animation and play the exit animation;
- first and second are used for descriptive purposes only, and cannot be understood as implying or implying relative importance or implicitly specifying the quantity of indicated technical features. Therefore, the features defined as “first” and “second” may explicitly or implicitly include one or more of these features. In the description of the embodiments of the present application, unless otherwise specified, the “multiple” The meaning is two or more.
- UI user interface
- the term "user interface (UI)" in the specification, claims and drawings of this application is a medium interface for interaction and information exchange between an application program or an operating system and a user, and it realizes the internal form of information Conversion to and from a form acceptable to the user.
- the user interface of the application program is the source code written in specific computer languages such as java and extensible markup language (XML). Such as images, text, buttons and other controls.
- Control also known as widget (widget), is the basic element of user interface.
- Typical controls include toolbar (toolbar), menu bar (menu bar), input box, button (button), scroll bar (scrollbar), images and text.
- the properties and contents of the controls in the interface are defined through labels or nodes.
- the dynamic effect means that the M frames of image frames change positions, sizes, display forms, etc. according to a predetermined order, so that the user feels that the user interface displayed by the electronic device has a richer level.
- the motion effects involved in the embodiment of the present application include startup motion effects and exit motion effects.
- the period from when the application program receives a user-triggered application start operation to when the electronic device 100 displays the main interface of the application program is called the start-up phase of the application program, and the time spent in the start-up phase is called start-up time. Since the electronic device 100 needs to initialize and preload the application program during the startup phase of the application program, the startup time is relatively long.
- the size of each image frame gradually increases from a preset minimum size to a preset maximum size.
- the center point of the image frame in the start-up animation coincides with the center point of the display screen of the electronic device 100, and the size of each image frame can be changed from a preset minimum size to Gradually grows proportionally up to a preset maximum size.
- the size of the first image frame 1001 is consistent with the size of the icon of the application program, and the center point of the first image frame 1001 is at the center point of the icon of the application program. The same position, that is, both are at position 1002.
- the size of the first image frame 1001 is the minimum size (ie, the width is a, and the height is b).
- the first image frame 1001 can gradually increase from a preset minimum size to a preset maximum size of the image frame 1003, and the preset maximum size is A in width and B in length.
- the first image frame 1001 gradually increases from the preset minimum size to the image frame 1004, and the center point of the image frame 1004 is at the same position as the center point of the icon of the application program, namely Both are at position 1002.
- Image frame 1004 has dimensions c in width and d in height. c is greater than a, and d is greater than b.
- the size of the image frame 1005 gradually increases to the image frame 1007, and the center of the image frame 1007 is no longer at the same position as the center point 1002 of the icon of the application program, but is in the same position as the image frame
- the center points of 1003 are at the same position, that is, both are at position 1006 .
- the size of the image frame 1007 is g in width and h in height. g is greater than e, and h is greater than f.
- the electronic device 100 may play a start-up motion effect during the start-up phase of the application program.
- the start-up motion effect includes multiple image frames, and the display position and size of each image frame may be different.
- the electronic device 100 sequentially displays multiple image frames in sequence.
- the first image frame 1001 gradually increases from the preset minimum size to the image frame 1004.
- the image content of the image frame 1004 is the same as the image content of the Huawei video application icon, and the center point of the image frame 1004 In the same position as the center point of the icon of the Huawei Video app.
- the size of the image frame 1004 gradually increases to the image frame 1005 , and the image content of the image frame 1005 may not display any element, or may display one or more elements, which is not limited in this application.
- the center of the image frame 1005 is no longer at the same position as the center point 1002 of the icon of the Huawei video application program, but is at the same position as the center point of the display screen of the electronic device 100 .
- the size of the image frame 1005 gradually increases to the image frame 1007 , and the image content of the image frame 1007 may not display any element, or may display one or more elements, which is not limited in this application.
- the center of the image frame 1007 is no longer at the same position as the center point 1002 of the icon of the Huawei video application program, but is at the same position as the center point of the display screen of the electronic device 100 .
- the electronic device 100 displays the main interface of the Huawei video application program.
- the main interface of the Huawei Video app includes one or more video images. Video images can be dynamic or static.
- the main interface may also display a bottom menu bar, a search box, a sub-channel entry, etc., which are not limited in this embodiment of the present application.
- the center point of the image frame changes in real time, and the size of each image frame gradually increases from the preset minimum size to the preset maximum size, and Any border of the image frame is in contact with the border of the preset maximum size image frame.
- FIG. 2A illustrates another schematic diagram of changing the size of an image frame in starting a motion effect.
- the electronic device 100 receives and responds to the user's operation of clicking the application icon, the size of the application icon remains unchanged, and the original size of the application icon can be called the preset minimum size; after that, at time t2, the application The size of the icon gradually increases; at time t3, the size of the icon of the application program no longer increases, and the electronic device 100 displays a rectangular frame whose size is the same as the size of the rectangular frame shown at time t3; at time t4, the rectangle The size of the frame is increased from t3 to the size of the rectangular frame at t4, and a border (such as the lower border) of the rectangular frame at the t4 moment and the border of the preset maximum size rectangular frame (trying to coincide with the lower border); at t5 At this moment, the size of the rectangular frame increases from the moment t4 to the size of the rectangular frame at the moment t5, and the other border (such as the left border) of the rectangular frame at the moment t5 is the same as the other border (
- the size of the first image frame 2004 is consistent with the size of the icon of the application program, and the center point of the first image frame 2004 is at the center point of the icon of the application program. At the same position, that is, both are at position 2001 , the center point of the first image frame 2004 does not coincide with the center point 2002 of the display screen of the electronic device 100 .
- the size of the first image frame 2004 is the minimum size (ie, the width is a, and the height is b).
- the first image frame 2004 can gradually increase from the preset minimum size to the preset maximum size of the image frame 2003, and the preset maximum size is A in width and B in length.
- the first image frame 2004 gradually increases from the preset minimum size to the image frame 2005, and the center point of the image frame 2005 is at the same position as the center point of the icon of the application program, namely Both are at position 2001 , and the center point of the image frame 2005 does not coincide with the center point 2002 of the display screen of the electronic device 100 .
- the size of the image frame 2005 is c in width and d in height. c is greater than a, and d is greater than b.
- the size of the image frame 2005 gradually increases to the image frame 2006, and the center point 2007 of the image frame 2006 is no longer at the same position as the center point 2001 of the icon of the application program, and is not at the same time. It is at the same position as the center point 2002 of the image frame 2003.
- the size of the image frame 2006 is e in width and f in height. f is greater than d.
- the size of the image frame 2010 gradually increases to the image frame 2012 , and all borders of the image frame 2012 coincide with all borders of the image frame 2003 .
- the center point 2013 of the image frame 2012 is not at the same position as the center point 2001 of the icon of the application program, nor is it at the same position as the center point 2007 of the image frame 2006, nor is it at the same position as the center point 2009 of the image frame 2008 , is not at the same position as the center point 2011 of the image frame 2010 , but is at the same position as the center point 2002 of the image frame 2003 .
- the size of the image frame 2012 is k in width and l in height. k is greater than i, and l is greater than j. k equals A and j equals B.
- the electronic device 100 may play a start-up motion effect during the start-up phase of the application program.
- the start-up motion effect includes multiple image frames, and the display position and size of each image frame may be different.
- the electronic device 100 sequentially displays multiple image frames in sequence.
- FIG. 1G exemplarily shows the user interface 10 of the electronic device 100 .
- the user interface 10 may include icons of some application programs. For example, file management icon 1009, email icon 1010, music icon 1011, sports and health icon 1012, Huawei video icon 1013, weather icon 1014, camera icon 1015, address book icon 1016, and phone icon 1017. An information icon 1018.
- user interface 10 may include icons for more or fewer applications.
- the user interface 10 may include icons of some application programs different from those shown in FIG. 1G , which is not limited here.
- the electronic device 100 may receive and respond to a user operation (for example, click) on the Huawei Video icon 1013 on the user interface 10, and the Huawei Video application will start.
- a user operation for example, click
- the image content of the first image frame 2004 is the same as the image content of the icon of the Huawei video application program
- the size of the first image frame 2004 is consistent with the size of the icon of the Huawei video application program
- the The center point 2001 of the first image frame 204 is at the same position as the center point of the icon of the Huawei video application program.
- the first image frame 2004 gradually increases from the preset minimum size to the image frame 2005.
- the image content of the image frame 2005 is the same as the image content of the Huawei video application icon, and the center point of the image frame 2005 It is at the same position as the center point 2001 of the icon of the Huawei video application program, and is not at the same position as the center point 2002 of the display screen of the electronic device 100 .
- the size of the image frame 2005 gradually increases to the image frame 2006 , and the image content of the image frame 2006 may not display any elements, or may display one or more elements, which is not limited in this application.
- the center point 2007 of the image frame 2006 is no longer at the same position as the center point 2001 of the icon of the Huawei video application program, nor is it at the same position as the center point 2002 of the display screen of the electronic device 100 .
- the size of the image frame 2006 gradually increases to the image frame 2008, a frame (such as the lower frame) of the image frame 2008 coincides with a frame (such as the bottom frame) of the display screen of the electronic device 100, and the frame of the image frame 2008
- the image content may not display any element, or may display one or more elements, which is not limited in this application.
- the center point 2009 of the image frame 2008 is no longer at the same position as the center point 2001 of the icon of the Huawei video application program, nor is it at the same position as the center point 2007 of the image frame 2006, and is not at the same position as the center point 2002 of the display screen of the electronic device 100 not in the same position.
- the size of the image frame 2008 gradually increases to the image frame 2010, and another border (for example, the left border) of the image frame 2010 coincides with another border (for example, the left border) of the display screen of the electronic device 100, and the image
- the image content of the frame 2008 may not display any element, or may display one or more elements, which is not limited in this application.
- the center point 2011 of the image frame 2010 is no longer at the same position as the center point 2001 of the icon of the Huawei video application, nor is it at the same position as the center point 2007 of the image frame 2006, nor is it at the same position as the center point 2009 of the image frame 2008. The same position is different from the center point 2002 of the display screen of the electronic device 100 .
- the size of the image frame 2010 gradually increases to the image frame 2012, and all borders of the image frame 2012 coincide with all borders of the display screen of the electronic device 100.
- the image content of the image frame 2012 may not display any elements, or One or more elements may be displayed, which is not limited in this application.
- the image content of the image frame 2012 includes the icon of Huawei Video and the words "Huawei Video” and "Watch the World”.
- the center point 2013 of the image frame 2012 is no longer at the same position as the center point 2001 of the icon of the Huawei video application, nor is it at the same position as the center point 2007 of the image frame 2006, nor is it at the same position as the center point 2009 of the image frame 2008.
- the same position is not at the same position as the center point 2011 of the image frame 2010 , but is at the same position as the center point 2002 of the display screen of the electronic device 100 .
- each image frame is fixed when starting the motion effect, and the center point of each image frame moves according to a preset track.
- the shape of each image frame may be circular or rectangular, which is not limited in this application.
- the electronic device 100 receives and responds to the user's operation of clicking the application icon, and the size of the application icon gradually increases. When the size of the application icon increases to a preset size, the size of the application icon does not change any more.
- the user interface of 100 floats and displays image frames, and the image frames can move according to preset tracks. Specifically, please refer to the embodiments of FIG. 1G-FIG. 1I for UI diagrams of application program icon changes, and this application will not repeat them here. Please refer to the following embodiments of FIG. 3A-FIG .
- the central point 3001 of the image frame 3004 can move up and down between the position 3005 and the position 3006 in a straight line.
- the upper border of the image frame 3004 may coincide with the upper border of the display screen of the electronic device 100 .
- the center point 3001 of the image frame 3004 is at the position 3006 , the lower border of the image frame 3004 may coincide with the lower border of the display screen of the electronic device 100 .
- the image content of the image frame 3004 may include one or more elements, or may not include any element, which is not limited in this application.
- the central point 3001 of the image frame 3004 can move up-right and down-left in a straight line between position 3007 and position 3008 .
- the center point 3001 of the image frame 3004 is at the position 3007
- the upper border of the image frame 3004 can coincide with the upper border of the display screen of the electronic device 100
- the right border of the image frame 3004 can coincide with the right border of the display screen of the electronic device 100.
- the center point 3001 of the image frame 3004 is at the position 3008, the lower border of the image frame 3004 can coincide with the lower border of the display screen of the electronic device 100
- the left border of the image frame 3004 can coincide with the left border of the display screen of the electronic device 100.
- the image content of the image frame 3004 may include one or more elements, or may not include any element, which is not limited in this application.
- the central point 3001 of the image frame 3004 can move up-left and down-right along a straight track between position 3009 and position 3010 .
- the center point 3001 of the image frame 3004 is at the position 3009, the upper border of the image frame 3004 can coincide with the upper border of the display screen of the electronic device 100, and the left border of the image frame 3004 can coincide with the left border of the display screen of the electronic device 100.
- the center point 3001 of the image frame 3004 is at the position 3010, the lower border of the image frame 3004 may coincide with the lower border of the display screen of the electronic device 100, and the right border of the image frame 3004 may coincide with the right border of the display screen of the electronic device 100.
- the image content of the image frame 3004 may include one or more elements, or may not include any element, which is not limited in this application.
- trajectory of the center point 3001 of the above-mentioned image frame 3004 in the electronic device 100 is not limited to the above-mentioned figures, and may also have other figures, for example, a circle, a horizontal "8" curve figure, a Bezier curve figure, Arc curve graphics, etc., are not limited in this application.
- the electronic device 100 when the application program has displayed the main interface of the application program, the electronic device 100 receives the user's operation of exiting the application program. At this time, in the exit animation effect, the size of each image frame gradually decreases from the preset maximum size to the preset minimum size.
- the preset maximum size may be the same as the size of the display screen of the electronic device 100, and the preset minimum size may be consistent with the size of the icon of the application program.
- the image frames may be displayed sequentially in the order shown in FIG. 1L , FIG. 1K , FIG. 1J , FIG. 1I , and FIG. 1H .
- the image frames may be displayed sequentially in the order of FIG. 2M , FIG. 2L , FIG. 2K , FIG. 2J , FIG. 2I , and FIG. 2H .
- the electronic device 100 when the application program has been started, before displaying the main interface of the application program, the electronic device 100 receives an operation of the user to exit the application program.
- the start-up animation of the application includes M image frames
- the exit animation also includes M image frames.
- N is smaller than M, and at this time, there are two following implementation methods when the electronic device 100 is playing and exiting the animation.
- N is less than M
- the electronic device 100 receives the user’s operation to exit the application program
- the electronic device 100 starts the exiting motion effect, and stops playing the image frame in the starting motion effect
- the electronic device 100 100 Start playing from the Mth frame of the exit animation, and play until the first image frame in the exit animation.
- FIG. 4A exemplarily shows a schematic diagram of a movement trajectory of a central point of each frame of an image frame from the first frame to the eighth frame when the animation effect is started.
- the electronic device 100 When starting the animation to play to the eighth frame, the electronic device 100 receives the user's operation to exit the application program, then the electronic device 100 starts the exit animation, and the electronic device 100 starts to play from the eighth frame of the exit animation, Play until the first image frame that exits the animation effect.
- the eighth image frame to the first image frame may be the UI diagrams shown in FIG. 1K to FIG. 1H . It can be understood that some drawings are omitted in FIG. 1K to FIG. 1H .
- the positive direction of the X-axis is defined as the positive direction of the X-axis when the lower frame of the page display area of the electronic device 100 points to the right, and the upward direction of the left frame of the page display area of the electronic device 100 is the positive direction of the Y-axis.
- the point of intersection with the Y axis is the origin to establish a Cartesian coordinate system.
- the initial position is the center point of the first image frame in the start-up motion effect
- the center point of the first frame image frame is the initial position of the movement track of the center point of each image frame in the start-up motion effect.
- the initial position is the center point of the eighth image frame in the startup animation effect, and the electronic device 100 will start the exit animation effect, and play the eighth image frame to the first image frame in the exit animation effect in sequence.
- the center point of the eighth image frame in the exit animation coincides with the center point of the eighth image frame in the start animation.
- the center point of the eighth image frame in the exit motion effect is the initial position of the movement trajectory of the center point of each image frame in the exit motion effect.
- the center point of each image frame in the exit animation effect moves sequentially according to the direction of the motion track 4002, and when the center point of the first image frame in the start animation effect moves to the final position of the motion track, the electronic device 100 exits the application program and display the main interface.
- motion trajectory 4001 and the motion trajectory 4002 may be the same or different, which is not limited in this application.
- the electronic device 100 performs superposition calculations on the 9th to 30th image frames in the starting motion effect and the 1st image frame and the 22nd image frame in the exiting motion effect, respectively, to obtain a new 21 frames image frame.
- the electronic device 100 will play the new 21st image frame and the 23rd image frame to the 30th image frame in the exit animation in sequence.
- Motion calculation includes starting motion calculation and exiting motion calculation.
- the electronic device 100 plays the start-up motion effect, it needs to calculate parameter information such as the window size, display time, display position, transparency and display elements of each image frame in the start-up motion effect, and according to the parameter information of each image frame Information composite image frame.
- parameter information such as the window size, display time, display position, transparency, and display elements of each image frame in the start-up motion effect
- the parameter information of the image frame may also include other more information, which is not limited in this application.
- the electronic device 100 plays the exit animation, it also needs to calculate the window size, display time, display position, transparency and display elements of each image frame in the exit animation, and calculate the information according to the parameters of each image frame Information composite image frame.
- the window size of each image frame is the value of the length and width of the image frame;
- the display time of each image frame is the time when the image frame is suspended and displayed on the user interface of the electronic device 100; each frame The display position of the image frame is the position coordinate of the center point of the image frame on the display screen of the electronic device 100;
- the transparency of each image frame is the depth of the color of the image frame, and the darker the color of the image frame, the transparency of the image frame The smaller; the display element of each image frame is the text information and/or image information displayed in the image frame and so on.
- UI thread An Android program has only one process by default, but a process can have multiple threads. One of the threads is the UI thread. The UI thread is also called the UI main thread. The UI thread is created when the program is running, and is mainly responsible for controlling the display, update and control interaction of the UI interface. All application components - including activity, service, and broadcast receiver run in the main thread of the application. Therefore, processing time-consuming operations in any component can block all other components, including services and visible activities.
- Layer synthesis (surface flinger, SF) module the function of layer synthesis is to receive graphic display data from multiple sources, synthesize them, and then send them to the display device for display. For example, when you open an application, there are usually three layers of display, the status bar at the top, the navigation bar at the bottom or the side, and the interface of the application. Each layer is updated and rendered separately. These interfaces are composed of layers to synthesize a frame buffer (Frame Buffer). , the display of the electronic device can read data from the Frame Buffer and display the page corresponding to the data. Bufferqueue (cache queue) is used in the display process, and layer compositing is used as the compositing party. For example, the layer managed by the window is used as the page generated by the GPU by the producer, and the layer compositing is used for compositing.
- Bufferqueue cache queue
- FIG. 5 exemplarily shows a schematic diagram of an electronic device 100 playing a start animation and playing an exit animation.
- FIG. 5 shows that the flow chart includes the first application program, AMS (activity management service) module, WMS (window management service) module and SF (layer composition) module.
- AMS activity management service
- WMS window management service
- SF layer composition
- the layer compositing module may not be included, which is not limited in this application.
- AMS is used for management service of all activity life cycles in the electronic device 100 .
- WMS is used to manage the display order, size, position, window animation, etc. of windows.
- the electronic device 100 receives the user's operation of starting the first application program, and in response to the user's operation of starting the first application program, the electronic device 100 creates the first animation leash object through the AMS module and the WMS module. After that, the WMS module sends the identifier of the first animation leash object to the first application program, and after the first application program receives the identifier of the first animation leash object, the first application program starts to start the animation effect.
- S501-S508 describe the flow of the method for creating the first animation leash object by the AMS module and the WMS module. It should be noted that the flow of the method for creating the first animation leash object by the AMS module and the WMS module may include more or fewer steps than S501-S508, which is not limited in this application. Moreover, this application does not limit the execution order of each step in S501-S508.
- the electronic device 100 receives the user's operation of starting the first application program, and the first application program is started.
- the first application program may be a Huawei video application program.
- the operation of starting the first application program may be the operation of clicking the icon of the Huawei video application program as shown in FIG. 1G .
- the first application program starts an activity.
- Activity is the core main piece in the first application program. After the electronic device 100 receives the user's operation of starting the first application program, the first application program is started, and the first application program starts the activity.
- the first application program sends a binder command to the AMS (activity manager service, activity management service) module.
- AMS activity manager service, activity management service
- the AMS module is a management service responsible for the activity lifecycle.
- the AMS module is located in the application framework layer of the first application program.
- AMS is a very important interface. It is not only responsible for starting activity and service, but also responsible for managing sctivity and service.
- the first application program After the first application program starts the activity, it enters the AMS process of the system through the binder command inter-process communication, and calls the AMS.start activity interface.
- the AMS module sets the activity to be visible.
- the WMS module creates the first animation leash object through the surface animator.
- the first animation leash object is a temporary object created by the surface animator, which can control which windows need to be moved, and the first application program can control the parameter information of each image frame in the startup animation through the first animation leash object.
- the first application program After the first application program receives the identifier of the first animation leash object, the first application program starts to perform the start motion effect.
- the first application program determines the parameter information of each image frame in the startup animation effect, and then, the first application program changes the properties of the window drawn by the first animation leash object according to the parameter information of each image frame in the startup animation effect,
- the first application sends the parameter information of each image frame in the startup animation to the SF module, and the SF module synthesizes the image frames, and then the SF module displays the synthesized image frames in the window drawn by the first animation leash object.
- the initial parameter information of the image frame in the startup animation is the window size, display time, display position, transparency and display elements of the first image frame in the startup animation.
- the initial parameter information of the image frame can also include other more The information itself is not limited here.
- the layer composition module obtains the target parameter information of the next image frame according to the initial parameter information of the image frame in the start animation, and changes the attribute value of the first animation leash object according to the target parameter information of the next image frame.
- the first application program sends the task item of the motion effect calculation to the layer composition module, and the layer composition module performs the motion effect calculation.
- the current frame loss problem that occurs when the UI thread handles dynamic calculations can be greatly improved.
- the layer synthesis module creates a new dynamic effect processing thread on the basis of the original thread, and the task of the dynamic effect processing thread is to calculate the task items of dynamic effect calculation processed by all UI threads in the electronic device 100 .
- the problem that the UI thread of the application program loses image frames due to untimely processing can be solved.
- FIG. 5A exemplarily shows a schematic diagram of multi-linear operation of layer synthesis.
- layer composition The role of layer composition is to receive graphic display data from multiple sources, synthesize them, and then send them to the display device. For example, when opening an application, there are usually three layers of display, the status bar at the top, the navigation bar at the bottom or the side, and the interface of the application. Each layer is updated and rendered separately.
- thread 1 such as Binder thread
- thread 2 such as UI rendering thread
- thread 3 such as console event monitoring thread
- the Binder thread is for other processes, such as the application process, to communicate with the binder process for layer composition.
- the operation performed by part of the communication is to let the UI rendering thread update the UI of the system.
- the console event monitoring thread is to monitor the sleep/wake state switching event of the hardware frame buffer. Once the hardware frame buffer is going to sleep or wake up, the console event monitoring thread needs to notify the UI rendering thread, so that the UI rendering thread can perform the operation of closing or starting the display.
- the animation processing thread, thread 1, thread 2, and thread 3 are running in parallel, and the animation processing thread is only used for animation calculation, and the problem of frame loss is caused by the first application program not processing in time.
- the layer composition module receives the initial parameter information of the image frame in the start-up animation sent by the first application program, and calculates the target parameter information of the next image frame according to the initial parameter information of the image frame in the start-up animation.
- the layer composition module sends the target parameter information of the next image frame to the WMS module, and the WMS module changes the attribute value of the first animation leash object according to the target parameter information of the next image frame.
- the target parameter information of the next image frame includes information such as the window size, display time, display position, transparency, and display elements of the next image frame
- the attribute value of the first animation leash object also includes the window size , display time, display position, transparency and display elements and other information.
- the first animation leash object may be a window suspended and displayed on the user interface of the electronic device 100 .
- the layer synthesis module sets the properties of the "window" according to the initial parameter information of the image frames in the start-up animation, so that the window can display images according to the display order and display status of the preset image frames in the start-up animation.
- the layer composition module sends the startup animation to the display for playing.
- How the first application plays and activates the motion effect can refer to the embodiments shown in FIG. 1A-FIG. 1L, FIG. 2A-FIG. 2M, and FIG. 3A-FIG. 3E.
- S510, S511 and S512 may also be replaced with the following S510 and S511:
- the first application program obtains the target parameter information of the next image frame according to the initial parameter information of the image frame in the start animation, and changes the attribute value of the first animation leash object according to the target parameter information of the next image frame.
- the task item of motion calculation can also be done by the first application program.
- the first application program obtains the initial parameter information of the image frame in the starting animation effect, and calculates the target parameter information of the next image frame according to the initial parameter information of the image frame in the starting animation effect.
- the first application program changes the attribute value of the first animation leash object according to the target parameter information of the next image frame.
- the attribute value of the first animation leash object is the same as the target parameter information of the next image frame.
- the target parameter information of the next image frame includes information such as the window size, display time, display position, transparency, and display elements of the next image frame
- the attribute value of the first animation leash object also includes the window size , display time, display position, transparency and display elements and other information.
- the first animation leash object may be a window suspended and displayed on the user interface of the electronic device 100 .
- the layer synthesis module sets the properties of the "window" according to the initial parameter information of the image frames in the start-up animation, so that the window can display images according to the display order and display status of the preset image frames in the start-up animation.
- the electronic device 100 receives the user's operation to exit the first application program.
- the electronic device 100 may receive the user's operation to exit the first application program during the process of playing the activation animation, or may receive the user's exit from the first application after the activation animation is played.
- the operation of the program is not limited in this application.
- the electronic device 100 creates a second animation leash object through the AMS module and the WMS module. Afterwards, the WMS module sends the identifier of the second animation leash object to the first application program, and after the first application program receives the identifier of the second animation leash object, the first application program starts to perform an exit animation.
- S513-S516 describe the flow of the method for creating the second animation leash object by the AMS module and the WMS module. It should be noted that, the flow of the method for creating the second animation leash object by the AMS module and the WMS module may include more or fewer steps than S513-S516, which is not limited in this application. Moreover, the present application does not limit the execution order of each step in S513-S516.
- the first application program When the first application program exits, the first application program will send a binder command to the WMS module, and the binder command is used to instruct the WMS module to start an exit animation.
- the WMS module sends the second animation leash object to the first application program.
- the first application program After the first application program receives the identifier of the second animation leash object, the first application program starts to perform the exit animation effect.
- the first application determines the parameter information of each image frame in the exit animation, and then, the first application changes the properties of the window drawn by the second animation leash object according to the parameter information of each image frame in the exit animation,
- the first application sends the parameter information of each image frame in the exit animation to the SF module, and the SF module synthesizes the image frames, and then the SF module displays the synthesized image frames in the window drawn by the second animation leash object.
- the first application acquires the initial parameter information of the image frame in the exit animation.
- the layer synthesis module obtains the target parameter information of the next image frame according to the initial parameter information of the image frame in the exit animation effect, and changes the attribute value of the second animation leash object according to the target parameter information of the next image frame.
- the first application program sends the task item of the dynamic effect calculation to the layer composition module, and the layer composition module performs the dynamic effect calculation.
- the layer composition module performs the dynamic effect calculation.
- the layer synthesis module receives the initial parameter information of the image frame in the exit animation sent by the first application program, and calculates the target parameter information of the next image frame according to the initial parameter information of the image frame in the exit animation.
- the layer compositing module changes the attribute value of the second animation leash object according to the target parameter information of the next image frame.
- the attribute value of the second animation leash object is the same as the target parameter information of the next image frame.
- the target parameter information of the next image frame includes information such as the window size, display time, display position, transparency, and display elements of the next image frame
- the attribute value of the second animation leash object also includes the window size , display time, display position, transparency and display elements and other information.
- the second animation leash object may be a window suspended and displayed on the user interface of the electronic device 100 .
- the layer synthesis module sets the properties of the "window" according to the initial parameter information of the image frames in the start-up animation, so that the window can display images according to the display order and display status of the preset image frames in the start-up animation.
- S518, S519 and S520 may also be replaced by the following S518 and S519:
- the first application program obtains the target parameter information of the next image frame according to the initial parameter information of the image frame in the exit animation effect, and changes the attribute value of the second animation leash object according to the target parameter information of the next image frame.
- the task item of motion calculation can also be done by the first application program.
- the first application program obtains the initial parameter information of the image frame in the exit animation effect, and calculates the target parameter information of the next image frame according to the initial parameter information of the image frame in the exit animation effect.
- the first application program changes the attribute value of the second animation leash object according to the target parameter information of the next image frame.
- the attribute value of the second animation leash object is the same as the target parameter information of the next image frame.
- the target parameter information of the next image frame includes information such as the window size, display time, display position, transparency, and display elements of the next image frame
- the attribute value of the second animation leash object also includes the window size , display time, display position, transparency and display elements and other information.
- the second animation leash object may be a window suspended and displayed on the user interface of the electronic device 100 .
- the layer synthesis module sets the properties of the "window" according to the initial parameter information of the image frames in the start-up animation, so that the window can display images according to the display order and display status of the preset image frames in the start-up animation.
- the first application program sends the exit animation to the display for playing.
- a first animation leash object is created, and the electronic device 100 performs a start motion effect according to the first animation leash object.
- the electronic device 100 receives the user's operation to exit the first application program, the electronic device 100 will close the start animation effect, and create a second animation leash object to make the exit animation effect, after that, The electronic device 100 starts to play the exit animation. Since the startup animation and the exit animation are two-stage animation effects, when the two-stage animation effects are switched, the user can feel a sudden change in the screen, resulting in a poor experience.
- this application provides a method for dynamically linking applications, the method includes: the electronic device 100 receives the user's operation of starting the first application, and the electronic device 100 creates a first animation leash object to start the animation effect; During the startup process, the electronic device 100 receives the user's operation of exiting the first application program, and the electronic device 100 multiplexes the first animation leash object to make the exit animation effect.
- the startup animation and exit animation of the first application are all animations based on the first animation leash object during the switching process, so the startup animation and exit animation are the same animation, and there will be no startup Since the animation effect and the exit animation effect are two-stage animation effects, the transition is unnatural when switching.
- the device type of the electronic device 100 may include a mobile phone, a tablet computer, a smart screen, a desktop computer, a laptop computer, a handheld computer, a notebook computer, an ultra-mobile personal computer (UMPC), a netbook, and the like.
- the embodiment of the present application does not specifically limit the device type of the electronic device 100 .
- the electronic device 100 shown in FIG. 6 is only an example, and that the electronic device 100 may have more or fewer components than those shown in FIG. 6, two or more components may be combined, or Different component configurations are possible.
- the various components shown in the figures may be implemented in hardware, software, or a combination of hardware and software including one or more signal processing and/or application specific integrated circuits.
- the electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (universal serial bus, USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, and an antenna 2 , mobile communication module 150, wireless communication module 160, audio module 170, speaker 170A, receiver 170B, microphone 170C, earphone jack 170D, sensor module 180, button 190, motor 191, indicator 192, camera 193, display screen 194, and A subscriber identification module (subscriber identification module, SIM) card interface 195 and the like.
- SIM subscriber identification module
- the structure illustrated in the embodiment of the present invention does not constitute a specific limitation on the electronic device 100 .
- the electronic device 100 may include more or fewer components than shown in the figure, or combine certain components, or separate certain components, or arrange different components.
- the illustrated components can be realized in hardware, software or a combination of software and hardware.
- the processor 110 may include a softAP network configuration module.
- the softAP distribution network module can be integrated in AP or NPU or other chips.
- the electronic device 100 can wake up the softAP network configuration module, and use the softAP network configuration method to configure the network for the electronic device 100 .
- the processor 110 may include a Bluetooth network distribution module, a sound wave network distribution module, and the like.
- the embodiment of the present application does not limit the chips integrated with the above-mentioned different types of distribution network modules.
- the above different types of network distribution modules may be awakened after the electronic device 100 confirms that the NAN network distribution fails.
- the electronic device 100 may use the above-mentioned different types of network distribution modules to provide corresponding network distribution services for the electronic device 100 .
- a memory may also be provided in the processor 110 for storing instructions and data.
- the memory in processor 110 is a cache memory.
- the memory may hold instructions or data that the processor 110 has just used or recycled. If the processor 110 needs to use the instruction or data again, it can be called directly from the memory. Repeated access is avoided, and the waiting time of the processor 110 is reduced, thus improving the efficiency of the system.
- the wireless communication function of the electronic device 100 can be realized by the antenna 1 , the antenna 2 , the mobile communication module 150 , the wireless communication module 160 , a modem processor, a baseband processor, and the like.
- the electronic device 100 can realize the shooting function through the ISP, the camera 193 , the video codec, the GPU, the display screen 194 and the application processor.
- Camera 193 is used to capture still images or video.
- the object generates an optical image through the lens and projects it to the photosensitive element.
- the photosensitive element may be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor.
- CMOS complementary metal-oxide-semiconductor
- the photosensitive element converts the light signal into an electrical signal, and then transmits the electrical signal to the ISP to convert it into a digital image signal.
- the ISP outputs the digital image signal to the DSP for processing.
- DSP converts digital image signals into standard RGB, YUV and other image signals.
- the electronic device 100 may include 1 or N cameras 193 , where N is a positive integer greater than 1.
- the audio module 170 is used to convert digital audio information into analog audio signal output, and is also used to convert analog audio input into digital audio signal.
- the audio module 170 may also be used to encode and decode audio signals.
- Receiver 170B also called “earpiece” is used to convert audio electrical signals into sound signals.
- the earphone interface 170D is used for connecting wired earphones.
- the distance sensor 180F is used to measure the distance.
- the electronic device 100 may measure the distance by infrared or laser.
- the fingerprint sensor 180H is used to collect fingerprints.
- Touch sensor 180K also known as "touch panel”.
- the touch sensor 180K can be disposed on the display screen 194, and the touch sensor 180K and the display screen 194 form a touch screen, also called a “touch screen”.
- the touch sensor 180K is used to detect a touch operation on or near it.
- the touch sensor can pass the detected touch operation to the application processor to determine the type of touch event.
- the bone conduction sensor 180M can acquire vibration signals.
- the keys 190 include a power key, a volume key and the like.
- the key 190 may be a mechanical key. It can also be a touch button.
- the electronic device 100 can receive key input and generate key signal input related to user settings and function control of the electronic device 100 .
- the motor 191 can generate a vibrating reminder.
- the indicator 192 can be an indicator light, and can be used to indicate charging status, power change, and can also be used to indicate messages, missed calls, notifications, and the like.
- the SIM card interface 195 is used for connecting a SIM card.
- the SIM card can be connected and separated from the electronic device 100 by inserting it into the SIM card interface 195 or pulling it out from the SIM card interface 195 .
- the electronic device 100 may support 1 or N SIM card interfaces, where N is a positive integer greater than 1.
- the electronic device 100 adopts an eSIM, that is, an embedded SIM card.
- the eSIM card can be embedded in the electronic device 100 and cannot be separated from the electronic device 100 .
- the software system of the electronic device 100 may adopt a layered architecture, an event-driven architecture, a micro-kernel architecture, a micro-service architecture, or a cloud architecture.
- the software structure of the electronic device 100 is exemplarily described by taking an Android system with a layered architecture as an example.
- FIG. 7 is a block diagram of the software structure of the electronic device 100 according to the embodiment of the present invention.
- the layered architecture divides the software into several layers, and each layer has a clear role and division of labor. Layers communicate through software interfaces.
- the Android system is divided into four layers, which are respectively the application program layer, the application program framework layer, the Android runtime (Android runtime) and the system library, and the kernel layer from top to bottom.
- the application layer can consist of a series of application packages.
- the application package may include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, and short message.
- the application framework layer provides an application programming interface (application programming interface, API) and a programming framework for applications in the application layer.
- the application framework layer includes some predefined functions.
- the application framework layer can include window manager, content provider, view system, phone manager, resource manager, notification manager, etc.
- a window manager is used to manage window programs.
- the window manager can get the size of the display screen, determine whether there is a status bar, lock the screen, capture the screen, etc.
- the resource manager provides various resources for the application, such as localized strings, icons, pictures, layout files, video files, and so on.
- the notification manager enables the application to display notification information in the status bar, which can be used to convey notification-type messages, and can automatically disappear after a short stay without user interaction.
- the notification manager is used to notify the download completion, message reminder, etc.
- the notification manager can also be a notification that appears on the top status bar of the system in the form of a chart or scroll bar text, such as a notification of an application running in the background, or a notification that appears on the screen in the form of a dialog window.
- prompting text information in the status bar issuing a prompt sound, vibrating the electronic device, and flashing the indicator light, etc.
- the Android Runtime includes core library and virtual machine. The Android runtime is responsible for the scheduling and management of the Android system.
- the core library consists of two parts: one part is the function function that the java language needs to call, and the other part is the core library of Android.
- the surface manager is used to manage the display subsystem and provides the fusion of 2D and 3D layers for multiple applications.
- the media library supports playback and recording of various commonly used audio and video formats, as well as still image files, etc.
- the media library can support a variety of audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.
- the workflow of the software and hardware of the electronic device 100 will be exemplarily described below in conjunction with capturing and photographing scenes.
- the first four image frames in the start-up motion effect played by the electronic device 100 may be UI images as shown in FIG. 1H-FIG.
- FIGS. 8A-8H exemplarily show the UI diagrams of the application scenarios where the operation of exiting the first application is a sliding operation perpendicular to the bottom edge of the screen of the electronic device 100 to the top of the screen.
- FIG. 8A is the last image frame 8001 in the start-up motion effect of the first application played by the electronic device 100 .
- the electronic device 100 receives and responds to the user's sliding operation perpendicular to the lower edge of the screen of the electronic device 100 to the upper screen, and the electronic device 100 will play the exit animation of the first application program.
- the electronic device 100 displays an image frame 8002 as shown in FIG. 8B , and the image frame 8002 may be the first image frame in the exit animation.
- the image content of the image frame 8002 may not display any element, or may display one or more elements, which is not limited in this application.
- the image frame 9001 in FIG. 9A is the last image frame in the start-up motion effect of the first application played by the electronic device 100 .
- the electronic device 100 receives and responds to the user's sliding operation from the lower edge of the screen of the electronic device 100 to the upper right of the screen, and the electronic device 100 will play the exit animation of the first application program.
- the electronic device 100 does not display the image where the right edge of the image frame 9002 exceeds the right edge of the electronic device 100, and the electronic device 100 only displays the image between the left edge of the image frame 9002 and the right edge of the electronic device 100. .
- the size of the image frame 9004 gradually decreases, and the electronic device 100 displays an image frame 9005 as shown in FIG. 9E .
- the image frame 9005 may be the fourth image frame in the exit animation.
- the image content of the image frame 9005 may not display any element, or may display one or more elements, which is not limited in this application.
- the image frame 9005 is shifted to the right side of the screen of the electronic device 100 .
- the motion track of the center point of the image frame in the exit animation effect is track 9006 .
- the movement trajectory of the center point of the image frame in the exit animation effect is trajectory 8008, as can be seen , compared with the trajectory 8008, the trace 9006 is shifted to the right side of the screen of the electronic device 100 as a whole.
- FIG. 10A-FIG. 10F exemplarily show the UI diagrams of the application scenario corresponding to the sliding operation from the lower edge of the screen of the electronic device 100 to the upper left of the screen when the operation of exiting the first application is performed.
- the image frame 10001 in FIG. 10A is the last image frame in the start-up motion effect of the first application played by the electronic device 100 .
- the electronic device 100 receives and responds to the user's sliding operation from the bottom edge of the screen of the electronic device 100 to the upper left of the screen, and the electronic device 100 will play the exit animation of the first application program.
- the electronic device 100 calculates the parameter information of the next image frame in the start-up animation effect according to the initial parameter information of the image frame in the start-up animation effect according to the interpolation algorithm.
- the electronic device 100 acquires the initial parameter information of the image frame for activating the animation effect, and the initial parameter information of the image frame for activating the animation effect may be the parameter information of the first image frame in the animation effect activation.
- the electronic device 100 can obtain the parameter information of the second image frame in the starting motion effect according to the parameter information of the first image frame in the starting motion effect according to the difference algorithm, and so on, the electronic device 100 can use the difference algorithm according to the starting motion effect
- the parameter information of the second image frame in the activation effect is obtained from the parameter information of the third image frame in the startup animation effect, and the electronic device 100 can obtain the startup animation effect based on the parameter information of the N-1th image frame in the activation animation effect according to the difference algorithm.
- the image frame information of the second frame of the middle image frame is obtained from the image frame information of the third frame of the image frame exiting the dynamic effect, until the electronic device 100 can use the difference algorithm according to the image frame information of the N-1th frame of the image frame exiting the dynamic effect Get the image frame information of the Nth frame of the image frame in the exit animation.
- (c) in FIG. 11 exemplarily shows the kinetic effect curve of the third type of acceleration. That is, in the start-up animation or the exit animation played by the electronic device 100 , the switching time between two adjacent image frames increases sequentially from front to back.
- the interpolation algorithm can obtain the next frame of the image frame according to the parameter information of the current image frame through formula (1), formula (2) and formula (3).
- v represents the initial velocity of the object
- V represents the speed of the object at the next moment
- p represents the initial position of the object
- P represents the position of the object at the next moment
- t represents whether the current electronic device 100 calculates whether to start or exit the animation
- the electronic device 100 is displaying the Nth image frame in the start-up motion effect. At this time, the electronic device 100 receives the user's operation to exit the first application program, and the electronic device 100 needs to display the Nth image frame within a fixed time.
- the parameter information of the first image frame in the exit animation is obtained, and the electronic device 100 synthesizes and displays the first image frame in the exit animation according to the parameter information of the first image frame in the exit animation.
- the flowchart shown in FIG. 12 may not include a layer synthesis module, which is not limited in this application.
- the electronic device 100 receives the user's operation of starting the first application program, and in response to the user's operation of starting the first application program, the electronic device 100 creates the first animation leash object through the AMS module and the WMS module. After that, the WMS module sends the identifier of the first animation leash object to the first application program, and after the first application program receives the identifier of the first animation leash object, the first application program starts to start the animation effect.
- the AMS module sets the life cycle of the activity.
- the AMS module sends a notification to the window management service (window manager service, WMS) module to start the activation effect.
- WMS window manager service
- the WMS module receives and responds to the notification sent by the AMS module that the animation is ready to start, and the WMS module prepares to start animation, and creates a first animation leash object.
- the first application program After the first application program receives the identifier of the first animation leash object, the first application program starts to perform the start motion effect.
- the first application program determines the parameter information of each image frame in the startup animation effect, and then, the first application program changes the properties of the window drawn by the first animation leash object according to the parameter information of each image frame in the startup animation effect,
- the first application sends the parameter information of each image frame in the startup animation to the SF module, and the SF module synthesizes the image frames, and then the SF module displays the synthesized image frames in the window drawn by the first animation leash object.
- the first application program after the first application program receives the identifier of the first animation leash object, the first application program notifies the SF module to start the animation leash.
- the first application program determines the initial parameter information of the image frame in the startup animation, and then, the first application sends the initial parameter information of the image frame in the startup animation to the SF module, and the SF module uses the initial parameter information of the image frame in the startup animation
- the parameter information determines the parameter information of each image frame in the startup animation effect, and synthesizes the image frame according to the parameter information of each image frame in the startup animation effect, and the SF module uses the parameter information of each image frame in the startup animation effect Change the properties of the window drawn by the first animation leash object, and the SF module will display the synthesized image frame in the window drawn by the first animation leash object.
- S1009-S1012 describe the method flow of how the first application program plays the start-up motion effect. It should be noted that, the method flow of how the first application program plays the activation effect may include more or less steps than S1009-S1012, which is not limited in this application. Moreover, this application does not limit the execution order of each step in S1009-S1012.
- the first application program acquires initial parameter information of the image frame in the start-up motion effect.
- the first application program sends the initial parameter information of the image frame in the start animation to the layer composition module.
- the electronic device 100 receives the user's operation to exit the first application program.
- the electronic device 100 may receive the user's operation to exit the first application program during the process of playing the activation animation, or may receive the user's exit from the first application after the activation animation is played.
- the operation of the program is not limited in this application.
- the electronic device 100 In response to the operation of the user quitting the first application program, the electronic device 100 multiplexes the first animation leash object through the AMS module and the WMS module. Afterwards, the WMS module sends the identifier of the first animation leash object to the first application program, and after the first application program receives the identifier of the first animation leash object, the first application program starts to perform an exit animation.
- S1213-S1216 describe the flow of the method for creating the second animation leash object by the AMS module and the WMS module. It should be noted that the flow of the method for creating the second animation leash object by the AMS module and the WMS module may include more or less steps than S1213-S1216, which is not limited in this application. Moreover, this application does not limit the execution order of each step in S1213-S1216.
- the first application program sends a binder command to the WMS module.
- the WMS module receives and responds to the binder command, and reuses the first animation leash object.
- the first animation leash object is an animation leash object created by the electronic device 100 when playing and starting the animation effect.
- the electronic device 100 continues to use the first animation leash object when playing the exit animation effect. In this way, the startup animation and the exit animation can be made into a complete animation, and there will be no problem of unnatural transition when switching between the startup animation and the exit animation.
- the WMS module sends the first animation leash object to the first application program.
- the first application program After the first application program receives the identifier of the first animation leash object, the first application program starts to perform the exit animation effect.
- the first application determines the parameter information of each image frame in the exit animation, and then, the first application changes the properties of the window drawn by the first animation leash object according to the parameter information of each image frame in the exit animation,
- the first application program sends the parameter information of each image frame in the exit animation effect to the SF module, and the SF module synthesizes the image frames, and then the SF module displays the synthesized image frames in the window drawn by the first animation leash object.
- the first application program after the first application program receives the identifier of the first animation leash object, the first application program notifies the SF module to start the exit animation.
- the first application program determines the initial parameter information of the image frame in the exit animation effect, and then, the first application program sends the initial parameter information of the image frame in the exit animation effect to the SF module, and the SF module
- the parameter information determines the parameter information of each image frame in the exit animation effect, and synthesizes the image frame according to the parameter information of each image frame in the exit animation effect
- the SF module uses the parameter information of each image frame in the exit animation effect Change the properties of the window drawn by the first animation leash object, and the SF module will display the synthesized image frame in the window drawn by the first animation leash object.
- S1217-S1220 describe the flow of the method for multiplexing the first animation leash object by the AMS module and the WMS module. It should be noted that the flow of the method for creating the first animation leash object by the AMS module and the WMS module may include more or fewer steps than S1217-S1220, which is not limited in this application. Moreover, this application does not limit the execution order of each step in S1217-S1220.
- the first application acquires the initial parameter information of the image frame in the exit animation.
- the first application program obtains the initial parameter information of the image frame in the exit animation effect, and the initial parameter information of the image frame in the exit animation effect is the parameter information of the first image frame in the exit animation effect.
- the first application program can obtain the parameter information of the second image frame in the exit animation effect according to the parameter information of the first frame image frame in the exit animation effect according to the difference algorithm, and so on, the first application program can use the difference algorithm according to
- the parameter information of the second image frame in the exit animation obtains the parameter information of the third image frame in the exit animation, and the first application program can use the difference algorithm to obtain the parameter information of the N-1th image frame in the exit animation Obtain the parameter information of the Nth image frame in the exit animation, etc., until the electronic device 100 obtains the parameters of the M-th image frame in the exit animation according to the parameter information of the M-1th image frame in the exit animation according to the interpolation algorithm information.
- the exit animation effect includes M frames of image frames. That is, the first application program obtains the parameter information of the next
- the electronic device 100 when the first application program is playing the start-up animation, for example, the electronic device 100 currently displays the Nth image frame in the start-up animation, and the electronic device 100 receives the first Nth image frame to exit the first application program.
- the initial parameter information of the image frame in the exit animation obtained by the first application program is the parameter information of the Nth image frame in the start animation.
- the first application program sends the initial parameter information of the image frame in the exit animation effect to the layer composition module.
- the layer synthesis module obtains the target parameter information of the next image frame according to the initial parameter information of the image frame in the exit animation effect, and changes the attribute value of the first animation leash object according to the target parameter information of the next image frame.
- the first application program sends the task item of the motion effect calculation to the layer composition module, and the layer composition module performs the motion effect calculation.
- the layer composition module performs the motion effect calculation.
- the layer synthesis module creates a new dynamic effect processing thread on the basis of the original thread, and the task of this thread is to calculate the task items of dynamic effect calculation processed by all UI threads in the electronic device 100 .
- the layer synthesis module receives the initial parameter information of the image frame in the exit animation sent by the first application program, and calculates the target parameter information of the next image frame according to the initial parameter information of the image frame in the exit animation.
- the layer synthesis module sends the target parameter information of the next image frame to the WMS module, and the WMS module changes the attribute value of the first animation leash object according to the target parameter information of the next frame image frame, and the WMS module changes the attribute value of the first animation leash object according to the target parameter information of the first animation leash object.
- the property value draws the second window.
- the target parameter information of the next image frame includes information such as the window size, display time, display position, transparency, and display elements of the next image frame
- the attribute value of the first animation leash object also includes the window size , display time, display position, transparency and display elements and other information.
- the first animation leash object may be a window suspended and displayed on the user interface of the electronic device 100.
- the layer synthesis module sets the properties of the "window" according to the initial parameter information of the image frames in the start-up animation, so that the window can display images according to the display order and display status of the preset image frames in the start-up animation.
- the layer composition module sends the exit animation to the display for playing.
- the layer composition module After the layer composition module synthesizes the image frame according to the updated parameter information of the image frame, it sends the synthesized image frame to the display for display.
- S1218, S1219 and S1920 may also be replaced by the following S1218 and S1219:
- the first application program obtains the target parameter information of the next image frame according to the initial parameter information of the image frame in the exit animation effect, and changes the attribute value of the first animation leash object according to the target parameter information of the next image frame.
- the first application calculates the target parameter information of the next image frame according to the initial parameter information of the image frame in the exit animation effect.
- the first application program sends the target parameter information of the next image frame to the WMS module, and the WMS module changes the attribute value of the first animation leash object according to the target parameter information of the next image frame, and the WMS module changes the attribute value of the first animation leash object according to the The property value draws the second window.
- the target parameter information of the next image frame includes information such as the window size, display time, display position, transparency, and display elements of the next image frame
- the attribute value of the first animation leash object also includes the window size , display time, display position, transparency and display elements and other information.
- the first animation leash object may be a window suspended and displayed on the user interface of the electronic device 100 .
- the layer synthesis module sets the properties of the "window" according to the initial parameter information of the image frames in the start-up animation, so that the window can display images according to the display order and display status of the preset image frames in the start-up animation.
- the first application program sends the exit animation to the display for playing.
- the first application After the first application synthesizes the image frame according to the updated parameter information of the image frame, it sends the synthesized image frame to the display for display.
- FIG. 13 exemplarily shows a flow chart of a method for linking applications with dynamic effects provided by an embodiment of the present application.
- the electronic device 100 receives a user's first operation to start a task item played by a start motion effect (first motion effect) of a first application program.
- the first operation is an operation of opening a first application program.
- the first operation may be an operation of clicking an icon of the first application program.
- the first operation may be the operation of clicking the icon of the Huawei video application 1013 shown in FIG. 1G .
- the first operation of starting the first application may also be other operations, which are not limited in this application.
- the electronic device 100 creates a first animation leash object.
- the electronic device 100 receives the user's first operation, and the electronic device 100 starts to play the activation effect. Before the electronic device 100 starts to play the activation effect, the electronic device 100 needs to create an animation leash object (for example, the first animation leash object). 100 Start animation based on the first animation leash object.
- an animation leash object for example, the first animation leash object
- the first animation leash object may be a “window” that is suspended and displayed on the user interface of the electronic device 100 .
- the properties of this "window” are preset. Since the parameter information of each image frame in the startup animation can be different, the electronic device 100 changes the attribute of the "window” after obtaining the parameter information of each image frame, so that the "window”
- the image frame may be displayed on the user interface of the electronic device 100 according to the parameter information of each image frame.
- the electronic device 100 starts the animation according to the first animation leash object.
- the electronic device 100 needs to obtain the parameter information of the image frame in the animation leash, and then the electronic device 100 draws the first window according to the first animation leash object, and the electronic device 100 changes the first window according to the parameter information of the image frame in the animation leash.
- An attribute of a window the electronic device 100 synthesizes an image frame according to the parameter information of the image frame, and the electronic device 100 displays the image frame in the first window.
- the electronic device 100 Before the electronic device 100 starts the animation effect according to the first animation leash object, in order to make the animation effects of the image frames synthesized by the animation thread displayed on the display more smooth.
- the electronic device 100 needs to determine the parameter information of the interpolation algorithm, and the parameter information of the interpolation algorithm includes: dynamic effect type, elastic strength, and so on.
- the motion effect type may be, for example, a constant speed motion effect type, a fade-in and fade-out motion effect type, an accelerated motion effect type, and the like.
- the elastic coefficient is the rigidity k described in Fig. 11 .
- the parameter information of the interpolation algorithm may also include other more parameter information, such as damping coefficient, etc., which are not limited here.
- parameter information of the interpolation algorithms of different application programs may be the same or different, which is not limited in this application.
- the electronic device 100 needs to obtain the parameter information of the image frame in the animation leash, and then the electronic device 100 synthesizes the image frame according to the parameter information of the first animation leash object and the image frame, and the electronic device 100 sends the image frame to the display. to display.
- the electronic device 100 obtains the parameter information of the image frame in the activation animation according to an interpolation algorithm.
- the electronic device 100 acquires the initial parameter information of the image frame in the activation animation, and the initial parameter information of the image frame in the activation animation can be understood as the parameter information of the first image frame in the activation animation.
- the electronic device 100 can obtain the parameter information of the second image frame in the starting motion effect according to the parameter information of the first image frame in the starting motion effect according to the difference algorithm, and so on, the electronic device 100 can use the difference algorithm according to the starting motion effect
- the parameter information of the second image frame in the activation effect is obtained from the parameter information of the third image frame in the startup animation effect, and the electronic device 100 can obtain the startup animation effect based on the parameter information of the N-1th image frame in the activation animation effect according to the difference algorithm.
- the start motion effect includes M frames of image frames. That is, the electronic device 100 obtains the parameter information of the next image frame according to the parameter information of the currently displayed image frame according to the interpolation algorithm.
- the electronic device 100 After the electronic device 100 acquires the parameter information of the image frame in the start animation effect, the electronic device 100 synthesizes an image frame according to the first animation leash object and the parameter information of the image frame, and then sends the image frame to the display for display. Specifically, reference may be made to the embodiments shown in FIG. 1A-FIG. 1M, FIG. 2A-FIG. 2M, and FIG. 3A-FIG. 3E, which will not be repeated in this application.
- the electronic device 100 receives a second operation of the user, and the second operation is used to instruct the electronic device 100 to play the task items of the exit animation (second animation) of the first application program.
- the second operation is an operation of exiting the first application program.
- the second operation may be an operation acting on the lower edge of the screen of the electronic device 100 to slide upward of the screen.
- the second operation may be a sliding operation shown in FIG. 8A and perpendicular to the lower edge of the screen of the electronic device 100 to the upper screen, and the second operation may be the function shown in FIG. 9A and perpendicular to the screen of the electronic device 100.
- the second operation may be a sliding operation perpendicular to the lower edge of the screen of the electronic device 100 to the upper left of the screen as shown in FIG. 10A .
- the second operation may also be a click operation acting on the return home interface key among the "three keys". It should be noted that the return home interface key among the "three keys" may be a physical key or a virtual key, which is not limited in this application.
- the second operation of exiting the first application may also be other operations, which are not limited in this application.
- the electronic device 100 multiplexes the first animation leash object to make an exit animation effect.
- the electronic device 100 needs to obtain the parameter information of the image frame in the exit animation, and then the electronic device 100 draws the second window according to the first animation leash object, and the electronic device 100 changes the second window according to the parameter information of the image frame in the start animation effect.
- An attribute of a window the electronic device 100 synthesizes an image frame according to the parameter information of the image frame, and the electronic device 100 displays the image frame in the second window.
- the electronic device 100 obtains the parameter information of the image frame in the exit animation according to an interpolation algorithm.
- the electronic device 100 has finished playing the activation effect, and the electronic device 100 displays the main interface of the first application program, and the electronic device 100 receives the second operation of exiting the first application program. At this time, the electronic device 100 100 Acquires that the initial parameter information of the image frame in the exit animation is the parameter information of the Mth image frame in the start animation.
- the Mth image frame in the start-up motion effect is the last image frame in the start-up motion effect.
- the electronic device 100 acquires the initial parameter information of the image frame in the exit animation, and the initial parameter information of the image frame in the exit animation is the parameter information of the first image frame in the exit animation.
- the electronic device 100 can obtain the parameter information of the second image frame in the exit animation according to the parameter information of the first image frame in the exit animation according to the difference algorithm, and so on, and the electronic device 100 can obtain the parameter information of the second image frame in the exit animation according to the difference algorithm according to the exit animation.
- the parameter information of the second image frame in the exit animation effect is obtained from the parameter information of the third image frame in the exit animation effect, and the electronic device 100 can obtain the exit animation according to the parameter information of the N-1th image frame in the exit animation effect according to the difference algorithm.
- the exit animation effect includes M frames of image frames. That is, the electronic device 100 obtains the parameter information of the next image frame according to the parameter information of the currently displayed image frame according to the interpolation algorithm.
- the electronic device 100 when the electronic device 100 is playing the activation animation, for example, the electronic device 100 is currently displaying the Nth image frame in the activation animation, and the electronic device 100 receives the Nth frame of the image frame to exit the first application program. Two operations, at this time, the electronic device 100 acquires that the initial parameter information of the image frame in the exit animation is the parameter information of the Nth image frame in the start animation.
- the electronic device 100 acquires the initial parameter information of the image frame in the exit animation, and the initial parameter information of the image frame in the exit animation is the parameter information of the first image frame in the exit animation.
- the electronic device 100 can obtain the parameter information of the second image frame in the exit animation according to the parameter information of the first image frame in the exit animation according to the difference algorithm, and so on, and the electronic device 100 can obtain the parameter information of the second image frame in the exit animation according to the difference algorithm according to the exit animation.
- the parameter information of the second image frame in the exit animation effect is obtained from the parameter information of the third image frame in the exit animation effect, and the electronic device 100 can obtain the exit animation according to the parameter information of the N-1th image frame in the exit animation effect according to the difference algorithm.
- the parameter information of the Nth image frame in the effect, etc., and the Nth image frame in the start-up animation is the last image frame in the exit animation. That is, the electronic device 100 obtains the parameter information of the next image frame according to the parameter information of the currently displayed image frame according to the interpolation algorithm.
- the electronic device 100 acquires the parameter information of the image frame in the exit animation, and the electronic device 100 multiplexes the first animation leash object in the start animation, and then, the electronic device 100 draws a second window according to the first animation leash object, and the electronic device 100
- the image frame is synthesized according to the parameter information of the image frame in the exit animation effect, and the electronic device 100 displays the synthesized image frame on the second window.
- FIG. 8A-FIG. 8H, FIG. 9A-FIG. 9F, and FIG. 10A-FIG. 10F which will not be repeated here in this application.
- the electronic device 100 when the electronic device 100 plays the exit animation effect, it reuses the first animation leash object created when the electronic device 100 plays the start animation effect.
- the start animation effect and the exit thing are a piece of animation effect , there will be no unnatural transition when switching between starting and exiting the animation effect, which improves the user experience; on the other hand, the electronic device 100 obtains the value of the next image frame according to the parameter information of the current image frame through the difference algorithm. parameter information, and then synthesize the next frame of image according to the parameter information of the next image frame. In this way, the effects of the start animation and exit animation played by the electronic device 100 are more natural and smooth.
- the direction of the second operation of exiting the first application also affects the effect of the exit animation played by the electronic device 100 .
- FIG. 8H exemplarily shows that when the second operation of exiting the first application program is a sliding operation perpendicular to the lower edge of the screen of the electronic device 100 to the top of the screen, the center of the image frame in the exit animation effect Schematic diagram of the moving trajectory of the point.
- FIG. 9F exemplarily shows that when the second operation of exiting the first application program is a sliding operation perpendicular to the lower edge of the screen of the electronic device 100 to the upper right of the screen, the movement track of the center point of the image frame in the exiting motion effect is to the right of the electronic device 100 offset.
- FIG. 9F exemplarily shows that when the second operation of exiting the first application program is a sliding operation perpendicular to the lower edge of the screen of the electronic device 100 to the upper right of the screen, the image frame in the exit animation effect The trajectory of the center point.
- the movement track of the center point of the image frame in the exit animation shown in FIG. 9F is offset to the right of the electronic device 100 .
- the start-up motion effect of the application includes M frames of image frames, for example, the electronic device 100 is currently displaying the Nth frame of image frames in the start-up motion effect, and the electronic device 100 receives the second call to exit the first application program. operation, the electronic device 100 starts to play the exit animation.
- the electronic device 100 needs to obtain the parameter information of the first image frame in the exit animation. From the foregoing analysis, it can be seen that the electronic device 100 obtains the parameter information of the Nth image frame in the exit animation through the parameter information of the Nth image frame in the exit animation. Parameter information of the first image frame.
- the position information of the Nth image frame can be expressed as (x+N*v, y+N*v), since the second operation is a sliding operation perpendicular to the lower edge of the screen of the electronic device 100 to the upper right of the screen, so
- the abscissa of the position information of the Nth image frame input into the interpolation algorithm by the electronic device 100 will increase, for example, the position information of the Nth image frame input by the electronic device 100 into the interpolation algorithm is (x+N*v+x0 , y+N*v), x0 is greater than 0.
- the electronic device 100 obtains the position information of the first image frame in the exit animation through the interpolation algorithm (x+N*v+x0-v, y+N*v-v), so the first frame image in the exit animation The frame is shifted to the right side of the screen of the electronic device 100 .
- each image frame in the exit animation will shift to the right side of the screen of the electronic device 100 .
- FIG. 10F exemplarily shows that when the second operation of exiting the first application program is a sliding operation perpendicular to the lower edge of the screen of the electronic device 100 to the upper left of the screen, the moving track of the center point of the image frame in the exiting motion effect moves to the left of the electronic device 100 offset.
- FIG. 10F exemplarily shows that when the second operation of exiting the first application program is a sliding operation perpendicular to the lower edge of the screen of the electronic device 100 to the upper left of the screen, the image frame in the exit animation effect The trajectory of the center point.
- the movement track of the center point of the image frame in the exit animation shown in FIG. 10F is offset to the left of the electronic device 100 .
- the start-up motion effect of the application includes M frames of image frames, for example, the electronic device 100 is currently displaying the Nth frame of image frames in the start-up motion effect, and the electronic device 100 receives the second call to exit the first application program. operation, the electronic device 100 starts to play the exit animation.
- the electronic device 100 needs to obtain the parameter information of the first image frame in the exit animation. From the foregoing analysis, it can be seen that the electronic device 100 obtains the parameter information of the Nth image frame in the exit animation through the parameter information of the Nth image frame in the exit animation. Parameter information of the first image frame.
- the position information of the Nth image frame can be expressed as (x+N*v, y+N*v), since the second operation is a sliding operation perpendicular to the lower edge of the screen of the electronic device 100 to the upper left of the screen, so
- the abscissa of the position information of the Nth image frame input into the interpolation algorithm by the electronic device 100 will increase, for example, the position information of the Nth image frame input by the electronic device 100 into the interpolation algorithm is (x+N*v-x0 , y+N*v), x0 is greater than 0.
- the electronic device 100 obtains the position information of the first image frame in the exit animation through the interpolation algorithm (x+N*v-x0-v, y+N*v-v), so the first frame image in the exit animation The frame is shifted to the right side of the screen of the electronic device 100 .
- each image frame in the exit animation will shift to the left side of the screen of the electronic device 100 .
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
本申请要求于2021年05月25日提交中国专利局、申请号为202110574091.X、申请名称为“一种应用程序动效衔接的方法及装置”的中国专利申请的优先权,和,于2021年06月02日提交中国专利局、申请号为202110616128.0、申请名称为“一种应用程序动效衔接的方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及终端技术领域,尤其涉及一种应用程序动效衔接的方法及装置。
随着信息技术的不断发展,电子设备已经成为人们生活中不可或缺的工具。例如,用户可以在电子设备中安装各种不同的应用程序(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 style sheets,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),电子设备的显示器可以从Frame Buffer中读数据,并显示该数据对应的页面。在显示过程中使用到了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对象。第一animation leash对象是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对象的属性值与下一帧图像帧的目标参数信息相同。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第一animation leash对象的属性值的属性值也包括窗口大小、显示时间、显示位置、透明度和显示元素等信息。
可以理解的是,第一animation leash对象可以是悬浮显示在电子设备100的用户界面之上的一个窗口。之后,图层合成模块根据启动动效中图像帧的初始参数信息,对该“窗口”的属性进行设置,使得该窗口可以按照启动动效中预设图像帧的显示顺序和显示状态显示图像。
S511、第一应用程序将启动动画发送至显示器进行播放。
电子设备100如何播放启动动效的,可以参考图1A-图1L、图2A-图2M、图3A-图3E所示的实施例,本申请在此不再赘述。
电子设备100接收用户退出第一应用程序的操作,电子设备100可以在播放启动动效的过程中接收用户退出第一应用程序的操作,也可以在播放完启动动效之后接收用户退出第一 应用程序的操作,本申请在此不做限定。响应于用户退出第一应用程序的操作,电子设备100通过AMS模块和WMS模块创建第二annimation leash对象。之后,WMS模块将第二annimation leash对象的标识发送至第一应用程序,第一应用程序接收到第二annimation leash对象的标识之后,第一应用程序开始做退出动效。
具体的,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对象的属性值与下一帧图像帧的目标参数信息相同。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第二animation leash对象的属性值的属性值也包括窗口大小、显示时间、显示位置、透明度和显示元素等信息。
可以理解的是,第二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 processing unit,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上的包括无线局域网(wireless local 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,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming 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复用启动过程中的animation leash对象做退出动效,启动动效与退出动效在切换时,不会出现突变的情况,电子设备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对象的标识发送至第一应用程序,第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序开始做退出动效。
具体的,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在播放启动动效时创建的animation leash对象。电子设备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模块根据第一animation leash对象的属性值绘制第二窗口。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第一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)
- 一种应用程序动效衔接的方法,其特征在于,所述方法包括:所述电子设备接收用户的第一操作,所述第一操作用于启动播放第一应用程序的第一动效;根据所述第一操作,所述电子设备将所述第一动效中的第一图像帧显示在第一动效启动animationleach对象绘制的第一窗口中;所述电子设备接收用户的第二操作,所述第二操作用于指示所述电子设备播放所述第一应用程序的第二动效;根据所述第二操作,所述电子设备将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中。
- 根据权利要求1所述的方法,其特征在于,在所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中之前,所述方法还包括:所述电子设备基于所述第一动效中所述第一图像帧的第一参数信息合成所述第一图像帧;在所述电子设备将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中之前,所述方法还包括:所述电子设备基于所述第二动效中所述第二图像帧的第二参数信息合成所述第二图像帧。
- 根据权利要求1-2任一项所述的方法,其特征在于,所述电子设备接收用户的第二操作,包括:所述电子设备在显示所述第一图像帧时,接收到所述第二操作。
- 根据权利要求1-2任一项所述的方法,其特征在于,在所述电子设备接收所述第二操作之前,所述方法还包括:所述电子设备在播放完所述第一动效后,显示所述第一应用程序的第一用户界面。
- 根据权利要求3-4任一项所述的方法,其特征在于,所述第二图像帧为所述第二动效中的首帧图像帧;在所述电子设备将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中之前,所述方法还包括:所述电子设备基于所述第一参数信息,确定出所述第二参数信息和所述第二窗口的属性信息;所述电子设备通过所述第一animation leach对象基于所述第二窗口的属性信息,绘制出所述第二窗口。
- 根据权利要求5所述的方法,其特征在于,所述电子设备基于所述第一参数信息,确定出所述第二参数信息,包括:所述电子设备基于所述第一参数信息插值运算出所述第二参数信息。
- 根据权利要求5-6任一项所述的方法,其特征在于,在所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中之前,所述方法还包括:所述电子设备在所述surfaceflinger中新建动效处理线程;所述电子设备基于所述第一参数信息,确定出所述第二参数信息,包括:所述电子设备通过所述动效处理线程根据所述第一图像帧的第一参数信息确定出所述第二图像帧的第二参数信息。
- 根据权利要求1-7任一项所述的方法,其特征在于,所述第一参数信息包括以下任意一项或多项:所述第一图像帧的中心点的位置、所述第一图像帧的窗口尺寸、所述第一图像帧的透明度、所述第一图像帧的圆角大小;所述第二参数信息包括以下任意一项或多项:所述第二图像帧的中心点的位置、所述第二图像帧的窗口尺寸、所述第二图像帧的透明度、所述第二图像帧的圆角大小;所述第二窗口的属性信息包括以下任意一项或多项:所述第二窗口的中心点的位置、所述第二窗口的窗口尺寸、所述第二窗口的透明度、所述第二窗口的圆角大小。
- 一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器、一个或多个存储器;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:接收用户的第一操作,所述第一操作用于启动播放第一应用程序的第一动效;根据所述第一操作,将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中;接收用户的第二操作,所述第二操作用于指示所述电子设备播放所述第一应用程序的第二动效;根据所述第二操作,将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中。
- 根据权利要求9所述的电子设备,其特征在于,在所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中之前,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:基于所述第一动效中所述第一图像帧的第一参数信息合成所述第一图像帧;基于所述第二动效中所述第二图像帧的第二参数信息合成所述第二图像帧。
- 根据权利要求9-10任一项所述的电子设备,其特征在于,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:在显示所述第一图像帧时,接收到所述第二操作。
- 根据权利要求9-10任一项所述的电子设备,其特征在于,在所述电子设备接收所述第二操作之前,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:在播放完所述第一动效后,显示所述第一应用程序的第一用户界面。
- 根据权利要求11-12任一项所述的电子设备,其特征在于,所述第二图像帧为所述第 二动效中的首帧图像帧;在所述电子设备将所述第二动效中的第二图像帧显示在所述第一animationleach对象绘制的第二窗口中之前,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:基于所述第一参数信息,确定出所述第二参数信息和所述第二窗口的属性信息;通过所述第一animation leach对象基于所述第二窗口的属性信息,绘制出所述第二窗口。
- 根据权利要求13任一项所述的电子设备,其特征在于,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:基于所述第一参数信息插值运算出所述第二参数信息。
- 根据权利要求13-14任一项所述的电子设备,其特征在于,在所述电子设备将所述第一动效中的第一图像帧显示在第一animationleach对象绘制的第一窗口中之前,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:在所述surfaceflinger中新建动效处理线程;通过所述动效处理线程根据所述第一图像帧的第一参数信息确定出所述第二图像帧的第二参数信息。
- 根据权利要求9-15任一项所述的电子设备,其特征在于,所述第一参数信息包括以下任意一项或多项:所述第一图像帧的中心点的位置、所述第一图像帧的窗口尺寸、所述第一图像帧的透明度、所述第一图像帧的圆角大小;所述第二参数信息包括以下任意一项或多项:所述第二图像帧的中心点的位置、所述第二图像帧的窗口尺寸、所述第二图像帧的透明度、所述第二图像帧的圆角大小;所述第二窗口的属性信息包括以下任意一项或多项:所述第二窗口的中心点的位置、所述第二窗口的窗口尺寸、所述第二窗口的透明度、所述第二窗口的圆角大小。
- 一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行权利要求1至8任一项所述的方法。
- 一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如权利要求1至8任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22810274.5A EP4318232A4 (en) | 2021-05-25 | 2022-04-22 | METHOD AND DEVICE FOR LINKING APPLICATION ANIMATIONS |
US18/517,661 US20240095988A1 (en) | 2021-05-25 | 2023-11-22 | Method and Apparatus for Animation Transition in Application |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110574091 | 2021-05-25 | ||
CN202110574091.X | 2021-05-25 | ||
CN202110616128.0A CN115390957A (zh) | 2021-05-25 | 2021-06-02 | 一种应用程序动效衔接的方法及装置 |
CN202110616128.0 | 2021-06-02 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/517,661 Continuation US20240095988A1 (en) | 2021-05-25 | 2023-11-22 | Method and Apparatus for Animation Transition in Application |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022247541A1 true WO2022247541A1 (zh) | 2022-12-01 |
Family
ID=84114336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/088518 WO2022247541A1 (zh) | 2021-05-25 | 2022-04-22 | 一种应用程序动效衔接的方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240095988A1 (zh) |
EP (1) | EP4318232A4 (zh) |
CN (1) | CN115390957A (zh) |
WO (1) | WO2022247541A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117724772B (zh) * | 2023-05-25 | 2024-08-16 | 荣耀终端有限公司 | 一种应用程序的退出控制方法和装置 |
CN117724781A (zh) * | 2023-07-04 | 2024-03-19 | 荣耀终端有限公司 | 一种应用程序启动动画的播放方法和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101223555A (zh) * | 2005-07-13 | 2008-07-16 | 微软公司 | 动画间的平滑过渡 |
US20090315897A1 (en) * | 2008-06-24 | 2009-12-24 | Microsoft Corporation | Animation platform |
CN110162343A (zh) * | 2019-04-10 | 2019-08-23 | 北京梧桐车联科技有限责任公司 | 应用启动方法及装置、电子设备及存储介质 |
CN111127601A (zh) * | 2019-12-25 | 2020-05-08 | 北京金山猎豹科技有限公司 | 一种动画切换方法、装置、电子设备及存储介质 |
CN111880877A (zh) * | 2020-07-24 | 2020-11-03 | 上海米哈游天命科技有限公司 | 一种动画切换方法、装置、设备及存储介质 |
CN112882784A (zh) * | 2021-02-09 | 2021-06-01 | 北京小米移动软件有限公司 | 一种应用界面显示方法、装置、智能设备及介质 |
-
2021
- 2021-06-02 CN CN202110616128.0A patent/CN115390957A/zh active Pending
-
2022
- 2022-04-22 EP EP22810274.5A patent/EP4318232A4/en active Pending
- 2022-04-22 WO PCT/CN2022/088518 patent/WO2022247541A1/zh active Application Filing
-
2023
- 2023-11-22 US US18/517,661 patent/US20240095988A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101223555A (zh) * | 2005-07-13 | 2008-07-16 | 微软公司 | 动画间的平滑过渡 |
US20090315897A1 (en) * | 2008-06-24 | 2009-12-24 | Microsoft Corporation | Animation platform |
CN110162343A (zh) * | 2019-04-10 | 2019-08-23 | 北京梧桐车联科技有限责任公司 | 应用启动方法及装置、电子设备及存储介质 |
CN111127601A (zh) * | 2019-12-25 | 2020-05-08 | 北京金山猎豹科技有限公司 | 一种动画切换方法、装置、电子设备及存储介质 |
CN111880877A (zh) * | 2020-07-24 | 2020-11-03 | 上海米哈游天命科技有限公司 | 一种动画切换方法、装置、设备及存储介质 |
CN112882784A (zh) * | 2021-02-09 | 2021-06-01 | 北京小米移动软件有限公司 | 一种应用界面显示方法、装置、智能设备及介质 |
Non-Patent Citations (1)
Title |
---|
See also references of EP4318232A4 |
Also Published As
Publication number | Publication date |
---|---|
US20240095988A1 (en) | 2024-03-21 |
EP4318232A4 (en) | 2024-09-18 |
CN115390957A (zh) | 2022-11-25 |
EP4318232A1 (en) | 2024-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020221063A1 (zh) | 切换父页面和子页面的方法、相关装置 | |
WO2021135838A1 (zh) | 一种页面绘制方法及相关装置 | |
WO2022247541A1 (zh) | 一种应用程序动效衔接的方法及装置 | |
CN115469781A (zh) | 图形界面显示方法、电子设备、介质以及程序产品 | |
CN113099146A (zh) | 一种视频生成方法、装置及相关设备 | |
WO2024055797A9 (zh) | 一种录像中抓拍图像的方法及电子设备 | |
CN113536866A (zh) | 一种人物追踪显示方法和电子设备 | |
WO2022247542A1 (zh) | 一种动效计算方法及装置 | |
WO2023241544A1 (zh) | 组件预览的方法和电子设备 | |
WO2023066177A1 (zh) | 动画效果显示方法及电子设备 | |
WO2023066165A1 (zh) | 动画效果显示方法及电子设备 | |
US20240064397A1 (en) | Video Shooting Method and Electronic Device | |
CN115220621A (zh) | 图形界面显示方法、电子设备、介质以及程序产品 | |
CN114690975A (zh) | 一种动效处理方法及相关装置 | |
WO2024099206A1 (zh) | 一种图形界面处理方法以及装置 | |
WO2024139934A1 (zh) | 应用程序多窗口展示方法和电子设备 | |
WO2023093664A1 (zh) | 联动动画的显示方法及相关装置 | |
WO2024066976A1 (zh) | 控件显示方法及电子设备 | |
WO2022262547A1 (zh) | 一种拍摄视频的方法及电子设备 | |
WO2023130977A1 (zh) | 用户界面显示方法、电子设备、介质以及程序产品 | |
CN116700555B (zh) | 动效处理方法及电子设备 | |
WO2024169305A1 (zh) | 应用管理的方法和电子设备 | |
WO2024094046A1 (zh) | 应用显示方法、电子设备以及存储介质 | |
US20240353972A1 (en) | User interface display method, electronic device, medium, and program product | |
WO2024109198A1 (zh) | 窗口调整方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22810274 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2022810274 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2022810274 Country of ref document: EP Effective date: 20231023 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |