CN114690975B - 一种动效处理方法及相关装置 - Google Patents
一种动效处理方法及相关装置 Download PDFInfo
- Publication number
- CN114690975B CN114690975B CN202011639675.2A CN202011639675A CN114690975B CN 114690975 B CN114690975 B CN 114690975B CN 202011639675 A CN202011639675 A CN 202011639675A CN 114690975 B CN114690975 B CN 114690975B
- Authority
- CN
- China
- Prior art keywords
- dynamic effect
- application
- dynamic
- configuration file
- electronic device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000000694 effects Effects 0.000 title claims abstract description 955
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 230000009471 action Effects 0.000 claims description 115
- 238000000034 method Methods 0.000 claims description 67
- 230000015654 memory Effects 0.000 claims description 39
- 238000004891 communication Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000875 corresponding effect Effects 0.000 description 97
- 230000033001 locomotion Effects 0.000 description 78
- 238000013459 approach Methods 0.000 description 55
- 239000010410 layer Substances 0.000 description 50
- 238000013461 design Methods 0.000 description 40
- 238000013016 damping Methods 0.000 description 33
- 230000006870 function Effects 0.000 description 29
- 238000007726 management method Methods 0.000 description 25
- 230000007704 transition Effects 0.000 description 23
- 230000008859 change Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 20
- 238000006073 displacement reaction Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 15
- 238000010295 mobile communication Methods 0.000 description 12
- 230000002829 reductive effect Effects 0.000 description 12
- 230000033764 rhythmic process Effects 0.000 description 12
- 230000005236 sound signal Effects 0.000 description 10
- 210000004027 cell Anatomy 0.000 description 9
- 230000007423 decrease Effects 0.000 description 9
- 238000011160 research Methods 0.000 description 9
- 230000001133 acceleration Effects 0.000 description 7
- 230000005669 field effect Effects 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000004927 fusion Effects 0.000 description 6
- 230000012010 growth Effects 0.000 description 6
- 230000029058 respiratory gaseous exchange Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000001976 improved effect Effects 0.000 description 4
- 238000012827 research and development Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 239000012792 core layer Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000005483 Hooke's law Effects 0.000 description 1
- 241000377022 Rhabdodiscus integer Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 210000005079 cognition system Anatomy 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001020 rhythmical effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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
- G06F3/0483—Interaction with page-structured environments, e.g. book metaphor
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72427—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting games or graphical animations
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2213/00—Indexing scheme for animation
- G06T2213/12—Rule based animation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种动效处理方法,包括:电子设备运行第一应用;电子设备调用动效配置文件,显示第一应用的第一动效,动效配置文件包括第一动效的N个特征属性和N个特征属性对应的值,N为正整数;电子设备运行第二应用;电子设备调用动效配置文件,显示第二应用的第二动效,动效配置文件中包括第二动效的M个特征属性和M个特征属性对应的值,M为正整数。本申请实施例,电子设备提供了适用于系统、控件以及应用程序的动效调用的动效配置文件。动效配置文件中包括了动效的多个特征属性,该特征属性是基于动效的特征从而归纳提取出的一套特征属性,将已有的动效基于一套特征属性进行配置,能够实现对不同的动效的统一管理。
Description
技术领域
本申请涉及电子设备技术领域,尤其涉及一种动效处理方法及相关装置。
背景技术
用户体验设计的发展日趋完善,优秀的动效是完善用户体验中不可或缺的一环,优秀的界面动态设计可以让产品的用户体验锦上添花。
动效作为细节效果呈现是比较零散的,每一个场景可能都会存在各自独有的效果。针对不同的模块不同的特性,往往都是使用不同的动效来实现。动效本身实现的独立性,导致了应用的集成或者实现也需要进行各自的适配工作。但是每个动效都是由一些相同的属性构成的,只是属性的值存在差异。而在多个设备上,同样的动效还可能存在不通用的场景。这样一来,动效的效果的复用性和继承性大大降低了。
基于这样的一个背景,如何更好的实现动效的复用以及跨设备之间的共享,成为了全场景发展的一个重点。
发明内容
本申请提供了一种动效处理方法及相关装置,实现了对动效进行统一管理的功能。
第一方面,本申请提供了一种动效处理方法,包括:电子设备运行第一应用;电子设备调用动效配置文件,显示第一应用的第一动效,动效配置文件包括第一动效的N个特征属性和N个特征属性对应的值,N为正整数;电子设备运行第二应用;电子设备调用动效配置文件,显示第二应用的第二动效,动效配置文件中包括第二动效的M个特征属性和M个特征属性对应的值,M为正整数。
本申请实施例,电子设备提供了适用于系统、控件以及应用程序的动效调用的动效配置文件。对于应用程序来说,例如应用A和应用B,应用A和应用B调用同一个动效配置文件,基于该同一个动效配置文件显示应用中的动效,电子设备的系统和控件同理,也可以基于该动效配置文件进行动效的调用。动效配置文件中包括了动效的多个特征属性(包括N个特征属性和M个特征属性),该特征属性是基于动效的特征从而归纳提取出的一套特征属性,将已有的动效基于一套特征属性进行配置,能够实现对不同的动效的统一管理。
在一种可能的实施方式中,电子设备运行第一应用,包括:电子设备接收第一操作;响应于第一操作,电子设备运行第一应用;电子设备运行第二应用,包括:电子设备接收第二操作;响应于第二操作,电子设备运行第二应用。这里,指示了电子设备基于第一操作运行第一应用,则该第一动效可以是第一应用的进场动效,电子设备基于第一操作运行第二应用,则该第二动效可以是第二应用的进场动效。
在一种可能的实施方式中,N个特征属性和M个特征属性中均包括动效配置文件的第一特征属性,第一特征属性对应的取值为第一值,方法还包括:电子设备将第一特征属性对应的第一值修改为第二值;电子设备接收第三操作;电子设备响应于第三操作,运行第一应用;电子设备调用动效配置文件,基于第一特征属性的第二值显示第一动效;电子设备接收第四操作;电子设备响应于第四操作,运行第二应用;电子设备调用动效配置文件,基于第一特征属性的第二值显示第二动效。这里描述了第一动效和第二动效存在共同的一个特征属性为第一特征属性,由于第一应用和第二应用都是基于动效配置文件来进行动效的调用的,当动效配置文件中的第一特征属性的值发生改变,则第一动效和第二动效的显示效果均基于第一特征属性的值的改变而改变。系统动效和空间动效同理,当动效配置文件中一个特征属性的值发生了改变,则调用该特征属性的动效均随之发生改变。这里实现了电子设备统一对多个应用的动效进行管理和修改,大大减少了研发人员的工作量。
在一种可能的实施方式中,特征属性包括时长属性、曲线属性、帧率属性。特征属性还可以包括颜色属性、透明度属性等等。
在一种可能的实施方式中,方法还包括:电子设备调用动效配置文件,显示第三动效,动效配置文件中包括第三动效对应的动效模板,动效模板由至少一个特征属性定义而成。本申请实施例中,动效配置文件中提供的动效模板包括物理引擎(滑动、拖拽、夹捏、速度、弹簧、摩擦力、跟手、翻页等)、系统动效(一镜到底、层次关系、运动编排等)、控件动效(各种控件的动效)、特征动效(波纹、律动、生长、韵律、融合、呼吸、旋转等)、应用动效等等。
在一种可能的实施方式中,电子设备调用动效配置文件,显示第一应用的第一动效,包括:电子设备获取动效配置文件,并将动效配置文件保存在第一应用的应用数据中;电子设备解析动效配置文件,生成第一应用的动效模型参数表;电子设备基于第一应用的动效模型参数表,获取第一动效的N个特征属性和N个特征属性对应的参数值,显示第一动效。电子设备的第一应用获取内核层的动效配置文件保存到自身的应用数据中,解析动效配置文件获取到动效参数,生成自身的动效模型参数表。基于自身的动效模型参数表展示对应的动效。当动效配置文件进行更新,应用A和应用B再一次获取动效配置文件进行更新,展现的动效也随之更新。这里,实现了电子设备对不同应用的动效进行统一管理的功能。
在一种可能的实施方式中,第一应用的动效模型参数表中第四动效的特征属性与动效配置文件中第四动效的特征属性不同;或者,第一应用的动效模型参数表中第四动效的特征属性对应的值,与动效配置文件中第四动效的特征属性对应的值不同。这里描述了第一应用的动效模型参数表中的动效的特征属性可以与动效配置文件中的不同,研发人员可以针对第一应用的动效模型参数表进行自定义修改,且不影响动效配置文件的内容。即本申请实施例支持应用软件的动效个性化设计。
在一种可能的实施方式中,方法还包括:在满足预设规则的情况下,电子设备修改动效配置文件中的第五动效的第二特征属性对应的值。这里描述了电子设备可以在满足预设规则的情况下,动态的对动效配置文件进行修改,增强了配置的灵活性。
在一种可能的实施方式中,预设规则为在预设时间段内,相邻两次用户操作之间的时间间隔小于预设时间的次数超过阈值;电子设备修改动效配置文件中的第五动效的第二特征属性对应的值,包括:电子设备将动效配置文件中第五动效的时长属性对应的值减少,第二特征属性包括时长属性。这里,电子设备统计出用户相邻两次操作间的间隔,可以根据统计判断用户的喜好以及个性,例如用户性格追求效率,电子设备可以将动效配置文件中的时长属性对应的值减少一些。提供了更为人性化的设计。
在一种可能的实施方式中,预设规则为当电子设备的当前时间处于第一时间段,动效配置文件为第一配置;当电子设备的当前时间处于第二时间段,动效配置文件为第二配置;其中,第一配置中第五动效的时长属性对应的值比第二配置中第五动效的时长属性对应的值小;第二特征属性包括时长属性。这里的第一时间段例如可以是白天,第二时间段例如可以是晚上,白天时用户更加的忙绿、追求效率,则动效配置文件中的时长属性对应的值可以比晚上更短一些,到了晚上用户更加的休闲放松,则电子设备可以将动效配置文件中的时长属性对应的值增加一些。这里提供了更为人性化的设计。
第二方面,本申请提供了一种电子设备,为电子设备,包括一个或多个处理器、一个或多个存储器和通信接口。该一个或多个存储器、通信接口与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行:
运行第一应用;调用动效配置文件,显示第一应用的第一动效,动效配置文件包括第一动效的N个特征属性和N个特征属性对应的值,N为正整数;运行第二应用;调用动效配置文件,显示第二应用的第二动效,动效配置文件中包括第二动效的M个特征属性和M个特征属性对应的值,M为正整数。
本申请实施例,电子设备提供了适用于系统、控件以及应用程序的动效调用的动效配置文件。对于应用程序来说,例如应用A和应用B,应用A和应用B调用同一个动效配置文件,基于该同一个动效配置文件显示应用中的动效,电子设备的系统和控件同理,也可以基于该动效配置文件进行动效的调用。动效配置文件中包括了动效的多个特征属性,该特征属性是基于动效的特征从而归纳提取出的一套特征属性,将已有的动效基于一套特征属性进行配置,能够实现对不同的动效的统一管理。
在一种可能的实施方式中,运行第一应用,包括:接收第一操作;响应于第一操作,运行第一应用;运行第二应用,包括:接收第二操作;响应于第二操作,运行第二应用。这里,指示了电子设备基于第一操作运行第一应用,则该第一动效可以是第一应用的进场动效,电子设备基于第一操作运行第二应用,则该第二动效可以是第二应用的进场动效。
在一种可能的实施方式中,N个特征属性和M个特征属性中均包括动效配置文件的第一特征属性,第一特征属性对应的取值为第一值,方法还包括:将第一特征属性对应的第一值修改为第二值;接收第三操作;响应于第三操作,运行第一应用;调用动效配置文件,基于第一特征属性的第二值显示第一动效;接收第四操作;响应于第四操作,运行第二应用;调用动效配置文件,基于第一特征属性的第二值显示第二动效。这里描述了第一动效和第二动效存在共同的一个特征属性为第一特征属性,由于第一应用和第二应用都是基于动效配置文件来进行动效的调用的,当动效配置文件中的第一特征属性的值发生改变,则第一动效和第二动效的显示效果均基于第一特征属性的值的改变而改变。系统动效和空间动效同理,当动效配置文件中一个特征属性的值发生了改变,则调用该特征属性的动效均随之发生改变。这里实现了电子设备统一对多个应用的动效进行管理和修改的功能,大大减少了研发人员的工作量。
在一种可能的实施方式中,特征属性包括时长属性、曲线属性、帧率属性。特征属性还可以包括颜色属性、透明度属性等等。
在一种可能的实施方式中,方法还包括:调用动效配置文件,显示第三动效,动效配置文件中包括第三动效对应的动效模板,动效模板由至少一个特征属性定义而成。本申请实施例中,动效配置文件中提供的动效模板包括物理引擎(滑动、拖拽、夹捏、速度、弹簧、摩擦力、跟手、翻页等)、系统动效(一镜到底、层次关系、运动编排等)、控件动效(各种控件的动效)、特征动效(波纹、律动、生长、韵律、融合、呼吸、旋转等)、应用动效等等。
在一种可能的实施方式中,调用动效配置文件,显示第一应用的第一动效,包括:获取动效配置文件,并将动效配置文件保存在第一应用的应用数据中;解析动效配置文件,生成第一应用的动效模型参数表;基于第一应用的动效模型参数表,获取第一动效的N个特征属性和N个特征属性对应的参数值,显示第一动效。的第一应用获取内核层的动效配置文件保存到自身的应用数据中,解析动效配置文件获取到动效参数,生成自身的动效模型参数表。基于自身的动效模型参数表展示对应的动效。当动效配置文件进行更新,应用A和应用B再一次获取动效配置文件进行更新,展现的动效也随之更新。这里,实现了电子设备对不同应用的动效进行统一管理的功能。
在一种可能的实施方式中,第一应用的动效模型参数表中第四动效的特征属性与动效配置文件中第四动效的特征属性不同;或者,第一应用的动效模型参数表中第四动效的特征属性对应的值,与动效配置文件中第四动效的特征属性对应的值不同。这里描述了第一应用的动效模型参数表中的动效的特征属性可以与动效配置文件中的不同,研发人员可以针对第一应用的动效模型参数表进行自定义修改,且不影响动效配置文件的内容。即本申请实施例支持应用软件的动效个性化设计。
在一种可能的实施方式中,方法还包括:在满足预设规则的情况下,修改动效配置文件中的第五动效的第二特征属性对应的值。这里描述了电子设备可以在满足预设规则的情况下,动态的对动效配置文件进行修改,增强了配置的灵活性。
在一种可能的实施方式中,预设规则为在预设时间段内,相邻两次用户操作之间的时间间隔小于预设时间的次数超过阈值;修改动效配置文件中的第五动效的第二特征属性对应的值,包括:将动效配置文件中第五动效的时长属性对应的值减少,第二特征属性包括时长属性。这里,电子设备统计出用户相邻两次操作间的间隔,可以根据统计判断用户的喜好以及个性,例如用户性格追求效率,电子设备可以将动效配置文件中的时长属性对应的值减少一些。提供了更为人性化的设计。
在一种可能的实施方式中,预设规则为当的当前时间处于第一时间段,动效配置文件为第一配置;当的当前时间处于第二时间段,动效配置文件为第二配置;其中,第一配置中第五动效的时长属性对应的值比第二配置中第五动效的时长属性对应的值小;第二特征属性包括时长属性。这里的第一时间段例如可以是白天,第二时间段例如可以是晚上,白天时用户更加的忙绿、追求效率,则动效配置文件中的时长属性对应的值可以比晚上更短一些,到了晚上用户更加的休闲放松,则电子设备可以将动效配置文件中的时长属性对应的值增加一些。这里提供了更为人性化的设计。
第三方面,本申请实施例提供了一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得通信装置执行上述任一方面任一项可能的实现方式中的动效处理方法。
第四方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述任一方面任一项可能的实现方式中的动效处理方法。
附图说明
图1A至图1B为本申请实施例提供的相关技术中的动效处理方法的场景界面示意图;
图2A至图2C为本申请实施例提供的另一种相关技术中动效处理的方法场景界面示意图;
图3为本申请实施例提供的一种电子设备的硬件结构示意图;
图4A为本申请实施例提供的一种电子设备的软件系统架构示意图;
图4B为本申请实施例提供的一种动效配置文件的架构示意图;
图5为本申请实施例提供的一种动效配置文件中的四种贝塞尔曲线;
图6为本申请实施例提供的一种动效配置文件中的时长属性参数的选择效果;
图7为本申请实施例提供的一种动效配置文件中的物理引擎;
图8A至图8C为本申请实施例提供的弹簧形变量和时间的曲线图;
图9A至图9B为本申请实施例提供的一种摩擦力模型中速度和时间的曲线图;
图10示例性示出了本申请实施例提供的一种跟手比率曲线图;
图11A至图11B本申请实施例提供的一种遮罩转场动效的场景示意图;
图12A至图12C为本申请实施例提供的一种共享元素动效的场景示意图;
图13A至图13C为本申请实施例提供的一种共享容器动效的场景示意图;
图14为本申请实施例提供的一种动效处理方法的方法流程图;
图15为本申请实施例提供的一种动效配置文件的示意图;
图16为本申请实施例提供的又一种动效处理方法的方法流程图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清除、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例,动效指的是界面动效(UI动效)。UI动效可以在传统静态UI设计的层面上,给应用界面更清晰的展示,提升用户与界面之间的交互感受。针对不同的场景、不同的界面,可以使用不同的动效。动效的作用包括:
1、满足基础操作体验下的流畅感受。
2、在使用功能时,清晰的表达界面之间的层级关系。
3、体现着产品的形象、格调,传递界面操作时的情感表达。
举例来说,在拨号界面上对于每一个数字按钮的点击,加入一个动效,当用户点击数字按钮,该数字按钮都会显示一个被点击的动效,图1A示例性示出了一种拨号界面,当用户点击数字按钮“1”,如图1B所示,数字按钮“1”的图标变为灰色,指示数字按钮“1”被点击。其中,这里的变为灰色即为一种动效,直观的为用户展示了数字按钮的点击动作。
又例如,图2A示例性示出了即时通讯软件的对话框界面,当用户点击返回上一级界面的控件时,如图2B所示,对话框界面以向右移动的方式退出,再显示如图2C所示的对话框界面的上一级界面。其中,从图2A到图2C的过程即为一种动效,直观的为用户展示了一种动态的退出效果。
又例如,在主界面上对于图标的选中,加入一个动效,当用户长按主界面上的一个图标,进入编辑模式,主界面上所有图标发生抖动。这里的抖动即为一种动效,直观的为用户示出了图标当前处于可编辑的状态。又例如,启动应用程序时加入一个进场动效;关闭应用程序时加入一个退场动效等等。
可以看出,动效提供了一种视觉反馈,这种视觉反馈能够减少用户的等待感,提高用户的参与感,为用户提供操作引导。目前,动效间相互独立,编码实现时都是按照动效自身的属性参数来实现。每个动效都有自己的属性,属性定义好了之后动效才能够执行。当用户想要对动效进行修改,也只能对单个动效进行修改,这导致了动效之间没有很好的复用性和继承性。并且,不同应用程序之间的动效也是相互独立的,应用A的动效与应用B的动效互不相干,无法统一对多个应用的动效进行管理。对于不同的设备来说,例如手机、平板和手表等设备,同一个应用的动效在手机上适用,但在手表上无法适用,导致研发人员针对不同的设备每个应用都要定义一套新的动效,工作量比较大。
本申请实施例提供了一种动效处理方法,该动效处理方法基于一种动效分层框架针对已有的动效进行归一化处理,提拉共性元素,重新定义动效的特征属性,特征属性是基于动效的特征从而归纳提取出的一套特征属性,例如包括动效时长属性、动效曲线属性、帧率属性等,这套特征属性基于不同的参数可以组合成各种不同动效。将已有的动效基于一套特征属性进行配置,能够实现对不同应用软件的动效的统一管理。基于该动效分层框架,应用研发人员可以在全场景、多设备、多应用之间按照该动效分层框架的模板,进行动效的开发与使用。有了动效分层框架之后,应用一次开发,全场景生效,可以实现多个设备之间、多个应用之间的动效共享使用。动效分层框架提供动效的特征属性以及参数值,应用进行解析与配置即可。
本申请实施例,一方面可以减少研发人员针对同一应用在不同设备上的动效开发时间,一方面便于后期对不同应用、不同设备的动效的特征属性进行统一的管理和完善,研发人员可以随时对动效分层框架进行修改,使用户能够立即体验到反馈,提升用户体验。
下面介绍本申请实施例涉及的电子设备。本申请实施例中的电子设备可以为手机、电视、平板电脑、音箱、手表、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及个人数字助理(personal digital assistant,PDA)、增强现实(Augmented reality,AR)\虚拟现实(virtual reality,VR)设备等,本申请实施例对该电子设备的具体类型不作特殊限制。
图3示出了电子设备100的结构示意图。
下面以电子设备100为例对实施例进行具体说明。应该理解的是,图3所示电子设备100仅是一个范例,并且电子设备100可以具有比图3中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备100供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,microled,Micro-oled,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。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的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等;
非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,SLC)、多阶存储单元(multi-level cell,MLC)、三阶储存单元(triple-level cell,TLC)、四阶储存单元(quad-level cell,QLC)等,按照存储规范划分可以包括通用闪存存储(英文:universalflash storage,UFS)、嵌入式多媒体存储卡(embedded multi media Card,emmc)等。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备100的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动终端平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。陀螺仪传感器180B可以用于确定电子设备100的运动姿态。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器。加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。指纹传感器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的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构,示例性说明电子设备100的软件结构。
请参考图4A,图4A是本申请实施例的电子设备100的软件架构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口、回调、服务等方式进行通信。在一些实施例中,可以将电子设备的系统分为应用程序层、应用程序框架层和内核层。
其中,应用程序层可用于实现对外围设备的管理和界面操作,该应用程序层可以包括一系列应用程序包,应用程序包括系统应用和三方应用。本申请实施例以应用A和应用B两个应用程序为例,其中应用A和应用B可以为例如相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息,邮件,浏览器,联系人等应用程序。
其中,应用A中包括应用A的动效模型参数表,应用B中包括应用B的动效模型参数表。应用A的动效模型参数表中包括了在各种场景下应用A对应展现的动效模板或动效参数,应用B的动效模型参数表中包括了在各种场景下应用B对应展现的动效模板或动效参数。应用A和应用B的动效模型参数是基于内核层的动效配置文件得到的。应用程序(应用A和应用B)在获取到动效配置文件后,将动效配置文件保存在应用数据中,将动效配置文件解析后直接保存为自身的动效模型参数表进行调用,也可以根据本申请实施例提供的动效的特征属性对动效配置文件进行自定义的更改或新增或删除,再生成自身的动效模型参数表进行调用。
本申请实施例中,应用程序层还包括调测APK,调测APK用于实现动效配置文件的更新或替换。调测APK支持查询场景和场景对应的动效参数的列表,支持修改动效参数并存储到ROM存储器,覆盖res资源使场景生效。
调测APK提供查询、修改、生效的能力。研发人员可以通过该调测APK来调节不同的参数。电子设备100基于调测APK查询到需要修改的参数,并输入想要修改的参数值,然后生成新的动效配置文件,将现有的动效配置文件进行替换,替换进电子设备100的系统版本即可生效。其中,调测apk可以读取当前所有场景的动效配置文件,并支持修改覆盖。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
本申请实施例中,应用程序框架层还包括对于不同主题和不同品牌相关联的一系列参数定义。
针对于主题的配置,主题例如可以包括明亮主题、黑暗主题等。一个主题下的动效配置文件中包括了一系列的动效参数。当电子设备100选定了其中一个主题,则基于该主题下关联的动效参数调用内核层的动效配置文件。例如在不同主题下,同一个场景下的动效的颜色属性调用的参数值是不同的。
针对于品牌的配置,品牌例如可以包括华为的mate系列、P系列等,一个品牌配置包括了overlay配置工程,可以支持不同品牌和产品的aniverylam和插值器(interpolator)的分层配置。
内核层是操作系统的内部核心程序,可用于向外部提供电子设备的核心管理调用。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。其中,操作系统的代码可以分成多个部分。内核所在的地址空间可称作内核空间。
本申请实施例中,内核层包括动效配置文件,动效配置文件是用于保存动效的配置信息,动效配置文件中提供了动效的特征属性参数(时长参数、曲线参数、帧率参数等)和动效模板(例如包括物理引擎、系统动效、控件动效、特征动效、应用动效等)。
应用程序层可以读取内核层的动效配置文件进行调用,例如电子设备100运行应用A,应用A调用并解析动效配置文件,基于解析后的动效配置文件生成自身的动效模型参数表。此时应用A需要展示应用A的进场动效,电子设备100基于应用A的动效模型参数表,确定应用A的进场场景动效对应的动效参数为进场动效模板,获取进场动效模板,从而显示应用A的进场动效;又例如电子设备100基于应用A的动效模型参数表,确定应用A的进场场景动效对应的动效参数包括一系列的特征属性参数,从而显示应用A的进场动效。
应用程序框架层可以读取内核层的动效配置文件进行调用,例如控件关联了动效的特征属性参数,可以通过接口调用动效配置文件中的控件动效;电子设备100的系统可以通过接口调用动效配置文件的系统动效。
针对于不同的设备,本申请实施例提供了不同的动效配置文件。设备例如可以包括手机、手表、平板等电子设备,一种设备的动效配置文件可以支持该种设备的动效参数配置,例如包括res,vendor res,overlay工程目录下的参数配置。本申请实施例中,针对设备的动效配置文件包括共性配置文件和特性配置文件,共性配置文件(图4A中示出的common_animation.xml)适用于所有场景,不区分设备的类型;特性配置文件是针对于不同的设备类型区分出的差异性的配置,特性配置文件例如包括默认配置文件(图4A中示出的default_animation.xml)、大屏配置文件、手机配置文件(图4A中示出的phone_animation.xml)、电视配置文件、车载配置文件、手表配置文件(图4A中示出的watch_animation.xml)、PC配置文件、平板配置文件等。针对不同的设备类型,在内核层安装共性配置文件和相应的特性配置文件。例如,手机的内核层中包括共性配置文件和手机配置文件;手表的内核层中包括共性配置文件和手表配置文件。由于不同设备类型上的动效配置文件的不同,同一个动效模型参数表,在手机上和手表上调用的动效是不同的,例如,应用A的动效模型参数表中,应用A的进场场景动效为进场动效模板,手机需要调用手机配置文件中的进场动效模板,在手机的显示屏上显示应用A的进场动效;而同一个应用A,安装在手表上,基于同一个应用A的动效模型参数表,手表需要调用手表配置文件中的进场动效模板,在手表的显示屏上显示应用A的进场动效;其他设备同理。也即是说,应用程序(例如应用A)可以只用一个动效模型参数表,实现多设备之间的动效模型参数表的共享使用,减少了应用研发人员的人力投入,提高了开发效率。
内核层还包括动效模型参数表,该动效模型参数表用于对动效进行维护和管理。需要注意的是,不同于应用程序层中的动效模型参数表,内核层中的动效模型参数表为总表,该动效模型参数表中包括电子设备100提供的所有动效模板以及动效特征属性参数,为了便于描述,下面可以将内核层中的动效模型参数表称为总表。
其中,内核层的动效配置文件与总表是相对应的,只是呈现方式不同,可以把总表看成是动效配置文件的一种简单说明,便于研发人员对应用程序的动效模型参数表进行配置。动效配置文件和总表是同步的,当总表进行更新,动效配置文件也随之更新;当动效配置文件进行更新,总表也随之更新。
下面结合展现应用A的进场动效的场景,示例性说明电子设备100软件以及硬件的工作流程。
当触摸传感器180K接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸操作,该触摸操作所对应的控件为应用A的应用图标的控件为例,应用A根据应用A的动效模型参数表调用内核层的动效配置文件中的进场动效,调用显示驱动在显示屏194上显示应用A的进场动效。
本申请实施例中,电子设备100提供了适用于系统、控件以及应用程序的动效调用的动效配置文件。对于应用程序来说,例如应用A和应用B,应用A和应用B获取内核层的动效配置文件保存到自身的应用数据中,解析动效配置文件获取到动效参数,生成自身的动效模型参数表。基于自身的动效模型参数表展示对应的动效。当动效配置文件进行更新,应用A和应用B再一次获取动效配置文件进行更新,展现的动效也随之更新。这里,实现了电子设备100对不同应用的动效进行统一管理的功能。
在一些实施例中,应用程序可以基于总表对不同应用程序的动效模型参数表进行自定义配置。这里的自定义配置只针对于应用自身的动效模型参数表,不涉及电子设备100的内核层中的总表和动效配置文件。
不限于是应用动效,电子设备100的系统动效和控件动效也是基于调用内核层的动效配置文件进行展示的,应用动效、系统动效、控件动效等的动效配置文件都是基于一种参数框架进行配置的。接下来对动效配置文件中的参数框架进行介绍。
如图4B所示,一个动效配置文件中可以包括动效特征属性(时长属性、曲线属性、帧率属性等)以及特征属性对应的参数、物理引擎(滑动、拖拽、夹捏、速度、弹簧、摩擦力、跟手、翻页等)、系统动效(一镜到底、层次关系、运动编排等)、控件动效(各种控件的动效,例如RecycleView Floating action button等)、特征动效(波纹、律动、生长、韵律、融合、呼吸、旋转等)、应用动效(相机动效、图库动效、设置动效等)等。其中,
动效特征属性是基于动效的特征从而归纳提取出的一套特征属性,例如包括动效时长属性、动效曲线属性、帧率属性等,这套特征属性可以组合成各种不同动效。即配置不同的动效时长、不同的动效曲线、帧率等,组合起来的动效也是不同的,研发人员可以按需进行动效特征属性参数的配置。物理引擎、系统动效、控件动效、特征动效、应用动效等可以看做是动效模板,动效模板是基于动效特征属性而预设的固定组合,例如包括上述的物理引擎、系统动效、控件动效、特征动效等。
在动效配置文件中,针对动效的各个动效特征属性,每一个属性可以由name、type、value这三个字段组成。其中,name是属性的身份名称,例如时长属性对应一个name、曲线属性对应另一个name,name可以使用xxx.xxx.xxx的字典型编码的方式来实现。type是编码实现中需要定义的数据类型,即java语言变量类型,一般有int,float,double等等。每一个name可以对应一个或多个value,每一个value都指示了一个对应的值,本申请实施例中,value指示的值可以是一个变量,也可以是一个固定的值。所有的name和value最终会生成一个动效模型参数表。例如,name1可以代表时长,name2可以代表曲线,name3可以代表帧率。在不同的场景下,每个name对应的value的值可以不同。
针对动效配置文件中的动效模板,每个动效模板中含有了预设好的动效特征属性以及对应的参数,例如动效模板1中包括name:open_enter_time、type:integer、value:300ms。这表示该动效模板1的进场时长为300ms。电子设备100的三方应用、系统应用等都可以直接调用该动效模板1,而无需对每一个动效特征属性进行自定义配置。
在一些实施例中,动效配置文件中的动效特征属性可以对应多个参数。即一个name可以对应一个或多个value。例如可以在动效配置文件中定义进场场景动效的时长参数为time1或time2或time3。若应用A需要调用该进场动效场景,应用A可以根据预设规则在时长参数的多个参数值中确定使用哪一个参数值,预设规则可以与使用频率、优先级、使用时段、使用场景、用户使用习惯等因素相关,本申请实施例对此不作限制。
在一些实施例中,应用程序在获取到动效配置文件后,可以不修改动效配置文件直接保存为自身的动效模型参数表进行调用,也可以根据动效特征属性参数对动效配置文件进行自定义,再生成自身的动效模型参数表进行调用。
在一些实施例中,动效模型参数表中的动效特征属性可以对应多个参数。例如可以在应用A的动效模型参数表中定义进场场景动效的时长参数为time1或time2或time3。应用A可以根据预设规则在时长参数的多个参数值中确定使用哪一个参数值,预设规则可以与使用频率、优先级、使用时段、使用场景、用户使用习惯等因素相关,本申请实施例对此不作限制。
在一些实施例中,动效配置文件中每一个动效特征属性对应的name都是固定的,只是value的值可以存在差异。对应用的动效进行设计时,相关的value值可以从电子设备100中的动效配置文件中获取。例如基于动效配置文件中的动效特征属性参数对应用A的进场场景的动效进行自定义,以时长参数为例,在动效配置文件中的时长参数包括time1、time2、time3等,则可以在应用A的动效模型参数表中定义进场场景动效的时长参数为time1。其中,time1、time2、time3等可以是一个变量,也可以是一个固定值。当动效配置文件中time1为10ms,则电子设备100显示进场动效的时长为10ms;当动效配置文件更新time1为20ms,则name1对应的value值为20ms,则电子设备100显示进场动效的时长为20ms。可选的,value指示的值也可以是一个固定的值,举例来说,在进场动效的场景下,通过动效模型参数表获取到name1对应的value值为10ms,则此时电子设备100显示进场动效的时长为10ms。
综上所述,本申请实施例提供了适用于多应用、多设备的动效配置文件,动效配置文件中提供了动效的具体参数。其中,动效配置文件包括共性配置文件和特性配置文件,特性配置文件适用于不同的设备类型。在应用的动效模型参数表中,可以直接使用动效配置文件,也可以根据需要进行自定义。例如针对于进场场景,可以定义进场场景的动效为动效配置文件中提供的进场动效模板,也可以定义进场场景的动效特征属性,实现动效的自定义。
下面详细描述动效配置文件中提供的具体参数。动效配置文件提供了动效模板和动效特征属性参数,电子设备的应用程序、系统、控件等可以基于该动效配置文件调用动效特征属性参数,也可以直接调用动效模板。动效模板包括物理引擎(滑动、拖拽、夹捏、速度、弹簧、摩擦力、跟手、翻页等)、系统动效(一镜到底、层次关系、运动编排等)、控件动效(各种控件的动效)和特征动效(波纹、律动、生长、韵律、融合、呼吸、旋转等)、应用动效(相机动效、图库动效、设置动效等)等等,动效特征属性参数包括时长参数、曲线参数、帧率参数等。其中,
1、动效的特征属性
本申请实施例中,动效的共性元素级设计包括曲线定义、时长定义、帧率定义,这些属性是构成所有场景动效设计的基础元素。
(1)曲线定义(Curve design)
曲线与时间相互配合产生运动的韵律感。调整曲线能使物体实现加速和减速,不是以恒定的速率移动。物理曲线可以解决手势操作时页面与手速之间的加减速匹配(方向、速度、位移距离)。曲线的类型可分为滑动曲线、弹性曲线、贝塞尔曲线等类型。其中,
贝塞尔曲线主要应用于固定的场景下应用页面切换间的运动匹配。贝塞尔曲线根据插值器的不同作出区分,插值器本质上讲是一种数学函数,参数是0.0到1.0之间的浮点数,输出值也是0.0到1.0的浮点数,曲线的斜率是速度。插值器指示了动效从初态过渡到终态的变化逻辑,从而控制动效变化的速率,使得动效效果能够以匀速、加速、减速、抛物线速率等速率中的一或多种速率变化。
通过定义插值器的参数(输入值和输出值),可以定义动效的运动变化。动效的每一帧都将在开始和结束之间的特定时间显示。此时动效时间被转换为时间索引,则动效时间轴上的每个点都可以转换成0.0到1.0之间的一个浮点数。然后再将该值用于计算该对象的属性变换。在变换的情况下,y轴上,0.0对应于起始位置,1.0对应于结束位置,0.5对应于起始和结束之间的中间,对于一些插值器其值还可以是0~1之外的数值。
如图5所示,本申请实施例示例性提供了四种贝塞尔曲线,这四种贝塞尔曲线的插值器是不同的,图5中,贝塞尔曲线插值器20-90是一种先加速后减速插值器,定义了动效从0.2这个时间点视图开始加速,然后在0.9这个时间点开始减速;贝塞尔曲线插值器33-33是一种先加速后减速插值器,定义了动效从0.33这个时间点视图开始加速,然后在0.67这个时间点开始减速;贝塞尔曲线插值器0-90是一种减速插值器,定义了动效从0.9这个时间点开始减速;贝塞尔曲线插值器0-100是一种减速插值器,定义了动效从1这个时间点开始减速。
不限于上述四种贝塞尔曲线,本申请实施例示例性还提供了例如包括插值器10-90、20-80、40-60、40-90、70-80、90-10等类型的贝塞尔曲线,可以根据需求选择适用于不同场景下的贝塞尔曲线。在一些场景下,跟手的滑动贝塞尔可以适当尝试40-60、33-33跟手速的贝塞尔曲线,70-80节奏较强的曲线可用于凸显趣味性场景。
在一些实施例中,动效配置文件中提供的插值器并不能满足所有的需求,因此,电子设备100可以通过系统插值器或自定义插值器(例如弹性力插值器、摩擦力插值器)设置动效特征属性值的变化逻辑。动效运行时,当电子设备100根据上述变化逻辑确定动效特征属性值发生改变时,基于上述动效特征属性值绘制帧图像,并刷新显示页面。
滑动曲线的常用场景为列表滑动、页面跟手上滑等。滑动曲线常用的e的负指数函数为一条缓和的衰减曲线,可用于速度或位移的衰减。与贝塞尔曲线的主要区别为更长的拖尾,能够弥补原贝塞尔曲线(插值器)的不足。
弹性曲线的设计通过属性接口可定义拟真的曲线形态,赋予元素更真实的运动状态。能够调用系统物理引擎能力,速度作为跟手输出值,差异化会产生不同程度的弹性效果,包括但不限于位移、缩放、旋转、透明度等属性,能够弥补原贝塞尔曲线(插值器)的不足。
动效配置文件中的预置的动效曲线示例性的如下表1所示:
表1
本申请实施例中,动效模型参数表中设定了动效场景所需的各类属性信息,举例来说,name2代表曲线,在滑动动效的场景下,通过动效模型参数表获取到name2对应的value值为曲线1,进而从动效配置文件获取曲线1为例如accelerateinterpolator类对应的函数,调用accelerateinterpolator类,则电子设备100显示该曲线1对应的滑动动效。
在一些实施例中,同一个name可以对应多个value值。即电子设备100通过动效模型参数表获取到name2对应的value值为曲线1、曲线2、曲线3,电子设备100根据预设规则选择其中一个,也可以随意选择其中一个,其中,预设规则包括例如优先级、使用频率等等。进而从动效配置文件获取曲线1包括两个函数,例如为accelerateinterpolator类对应的函数、以及acceleratedecelerateinterpolator类对应的函数。此时应用程序可以根据预设规则选择其中一个,预设规则可以与使用频率、优先级、使用时段、使用场景、用户使用习惯等因素相关,本申请实施例对此不作限制。
(2)时长定义Animation duration design
时间是产生动效的基本要素。不同类型的元素、场景适用不同的时长,过短或太长,都会让用户不适。如图6所示,图6示例性说明了时长应如何调整以适应不同类型的动效。图6给出了不同的时长对于用户体验的影响,时长的选择是基于实际需求进行选择的。
例如,简单动效,前后状态只通过颜色动效来实现,可设定时长为100ms;复杂动效,旋转动画需要合适的时间来保证,可设定时长为300ms;进出场动效,对于同一场景,进场往往需要更多关注,而当退场时,更多注意力转移到了下一个任务,可设定进场动效时长为300ms,退场动效时长为250ms;等等。
又例如,动效运动在一定的范围内进行,小范围内比全屏幕运动所用的时间相对更短。例如开关控件动效(小范围内运动),可设定时长为150ms;删除一条列表动效(局部范围内运动),可设定时长为200ms;打开一张图片(全屏范围的运动),可设定时长为350ms。在一些实施例中,也可以从位移的距离来进行判定,比如短位移为150ms,中位移为200ms,长位移为350ms。
本申请实施例中,动效模型参数表中设定了动效场景所需的各类属性信息,动效配置文件中提供了各类属性信息的具体数值。举例来说,name1代表时长,动效配置文件中将时长的参数值放置在commo_animation.xml中,其中设定animation_short_time=150ms、animation_middle_time=250ms、animation_long_time=350ms。应用A的动效模型参数表中指示了进场动效的动效特征属性以及对应的参数,包括时长参数、曲线参数、动效内容等,电子设备100通过动效模型参数表获取到name1对应的value值为animation_short_time,进而从动效配置文件获取animation_short_time为150ms,则电子设备100显示进场动效的时长为150ms。
在一些实施例中,针对不同的设备类型,动效配置文件中动效的属性信息的具体数值可以进行适应性变化。动效运动在一定的范围内进行,小范围内运动比全屏幕运动所用的时间相对更短。不同的设备存在一定的差异值,比如以手机作为参照物,以手机系统动效为标准,屏幕越大则运动时长越长。如表2所示,表2示例性的示出了不同的设备的动效的时长增减系数。
表2
手表(*寸) | 手机(*寸-*寸) | 平板(*寸) | 大屏(*寸) | |
时长增减系数 | 0.8 | 1 | 1.3 | 1.8 |
针对不同的设备类型,此时在动效配置文件的特性配置文件可以体现不同的配置。以上述举例为例,name1代表时长,在进场动效的场景下,通过动效模型参数表获取到name1对应的value值为animation_short_time。在手机配置文件(phone_animation.xml)中,从手机配置文件获取animation_short_time为150ms;在手表配置文件(watch_animation.xml)中,从手表配置文件中获取animation_short_time为150*0.8=120ms;在平板配置文件(pad_animation.xml)中,从平板配置文件中获取animation_short_time为150*1.3=195ms;在大屏配置文件(screen_animation.xml)中,从大屏配置文件中获取animation_short_time为150*1.8=270ms;等等。也即是说,应用研发人员无需针对不同的设备类型,分别对进场动效的name1进行不同的配置,只需使用同一套动效模型参数表,就可以在不同设备类型的动效配置文件中获取到适用于本设备的时长参数,大大减少了工作量。
可以理解的,表2示出的不同设备的类型的时长增减系数只是一种示例性的方式,本申请还可以根据屏幕尺寸大小计算时长,即时长的value值与屏幕的长度和/或宽度有关。其中,屏幕尺寸大小可以是电子设备的屏幕实际大小,也可以是电子设备的屏幕的显示区域大小。
(3)帧率定义Frame rate design
帧率是设备刷新的频率,与硬件设备的性能是强相关的。一般来说,设备性能越高,越能达到高帧率。比如,高端设备90FPS/120FPS、中低端设备60FPS、低端设备可以略小于60FPS。有些特殊的设备,还可以小于30FPS,比如手表。本申请实施例中,帧率不做具体的限定,应用可以根据实际场景、实际需要进行定义。
2、物理引擎
任何事物的运动都是符合物理世界的客观运动规律。如篮球在落到地面上会产出不断衰减的弹性,这样给用户的心理传达的产品感受是有软的并附有一定的弹力的,这现象背后蕴藏着一系列的物理运动规律弹性、惯性、重力、摩擦力等,包含手势的交互时页面与手的力度、速度、惯性产生的动效设计。
物理引擎可以看做是基于曲线进行的封装,也可以理解为动效配置文件中预设的模板,在应用的动效模型参数表中可以直接调用,无需配置动效特征属性;也可以对物理引擎的属性参数进行自定义。电子设备100可以基于识别用户的操作,确定调用的引擎设计层中的物理引擎。以电子设备100为手机为例,电子设备100识别到用户在触摸屏上触发的滑动操作,在动效模型参数表中查询滑动动效对应的各个属性的name和value值,进而从动效配置文件中调用滑动设计(和/或弹簧设计、摩擦力设计等)的物理引擎以及属性参数,实现滑动效果。
物理引擎的范围如图7所示,图7在逻辑层面上示例性示出了引擎设计层、交互设计层和设备层。其中,引擎设计层包括弹簧设计、滑动设计、跟手设计、摩擦力设计、速度设计、位移设计、缩放设计、旋转设计、错层设计、延时设计、欠阻尼设计等等。交互设计层包括触摸、悬浮手势、单指手势、双指手势、三指手势、遥控器/鼠标等。设备层包括手机(phone)、手表(watch)、平板(pad)、车载(car)、电视(TV)、电脑(PC)等。
下面示例性的介绍动效配置文件中的几种物理引擎。
(1)弹性引擎
本申请实施例示例性提供了一种弹性力模型,弹性力运动符合如公式①和公式②所示的胡克定律下的阻尼振动公式。
f=ma ①
其中,f为振动过程中的受力,m为质量,a为加速度,k为刚性系数(stiffness),x为弹簧形变量,d为阻尼系数(阻尼damping),t为时间。
刚性系数是弹簧单位形变量所需弹力的大小。刚性系数k越大,弹簧从最大振幅回到平衡位置的时间越短,反之越长。在一些实施例中,刚性系数k的取值范围可以为1~99,刚性系数k的建议取值范围可以为150~400。
阻尼系数是弹簧在振动过程中的减震力(例如流体阻力、摩擦力等)的量化表征,上述减震力可以使得弹簧振幅逐渐减小直至停止在平衡位置。阻尼系数越大,弹簧越容易停在平衡位置,反之越不容易。在一些实施例中,阻尼系数k的取值范围可以为1~99,电子设备100可以根据具体场景设置阻尼系数。
根据弹簧的阻尼特性,可以将弹簧的运动状态分为临界阻尼、欠阻尼和过阻尼三种状态。示例性的,如图8A至图8C所示,是本申请实施例提供的上述三种状态下弹簧形变量x和时间t的曲线图。参见图8A,临界阻尼状态下,弹簧以最平稳的速度在最短时间回到平衡位置后停止运动,不再振荡。参考见图8B,欠阻尼状态下,弹簧缓慢的经由多次振荡逐渐把振幅减小,最后回到平衡位置。参见图8C,过阻尼状态下,弹簧几乎没有振动,振幅逐渐减小,达到平衡位置。在一些实施例中,当d2=4*m*k时,弹簧处于临界阻尼状态;当d2<4*m*k时,弹簧处于欠阻尼状态;即当d2>4*m*k时,弹簧处于过阻尼状态。
本申请实施例中,用户操作的压力和/或速度决定了弹簧的形变,三方应用也可以自定义设定弹性力模型中的参数。
在一些实施例中,针对不同的设备类型,使用弹性力模型时,弹簧变现出来的效果要求也不同,所以刚性系数、阻尼系数的值应该在不同的设备上有所差异。一般来说,屏幕越大,移动的距离就会越明显,因此弹簧的弹性效果要越明显。刚性/阻尼传导系数越大、关联越弱、链条“偏软”,反之关联越强、链条“偏硬”、差异越小。所以在不同的设备的特性配置文件上,刚性/阻尼传导系数的设定可以存在差异。比如以手机作为参照物,不同的设备存在一定的差异值,如表3所示,表3示例性的示出了不同的设备的动效的刚性/阻尼增减系数。
表3
手表 | 手机 | 平板 | 大屏 | |
刚性/阻尼增减系数 | 1.2 | 1 | 0.8 | 0.6 |
针对不同的设备类型,此时在动效配置文件的特性配置文件可以体现不同的配置。以上述举例为例,name4代表刚性/阻尼的系数,在需要调用弹性动效的场景下,通过动效模型参数表获取到name4对应的value值为animation_spring_k_g_ratio。在手机配置文件(phone_animation.xml)中,从手机配置文件获取animation_spring_k_g_ratio为200;在手表配置文件(watch_animation.xml)中,从手表配置文件中获取animation_spring_k_g_ratio为200*1.2=240ms;在平板配置文件(pad_animation.xml)中,从平板配置文件中获取animation_spring_k_g_ratio为200*0.8=160;在大屏配置文件(screen_animation.xml)中,从大屏配置文件中获取animation_spring_k_g_ratio为200*0.6=120ms;等等。也即是说,应用研发人员无需针对不同的设备类型分别对弹性动效的name4进行不同的配置,只需使用同一套动效模型参数表,就可以在不同设备类型的动效配置文件中获取到适用于本设备的弹性动效的刚性/阻尼的系数,大大减少了工作量。
可以理解的,表3示出的不同设备的类型的刚性/阻尼增减系数只是一种示例性的方式,本申请还可以根据屏幕尺寸大小计算刚性/阻尼的系数,即刚性/阻尼系数的VALUE值与屏幕的长度和/或宽度有关。其中,屏幕尺寸大小可以是电子设备的屏幕实际大小,也可以是电子设备的屏幕的显示区域大小。
本申请实施例示例性的提供了一种弹性引擎插值器的实现代码,如下所示:Public constructors:
Springinterpolator(float stiffness,float damping)
Springinterpolator(float stiffness,float damping,float endpos)
Springinterpolator(float stiffness,float damping,float endpos,floatvelocity)
Springinterpolator(float stiffness,float damping,float endpos,floatvelocity,float valuethreshold)
具体例如:
Physicalinterpolatorbase interpolator=new springinterpolator(400F,40F,200F,2600F,1F);
Objectanimator animator=objectanimator.offloat(listview,“translationy”,0,346)
Animator.setduration(interpolator.getduration());
Animator.setinterpolator(interpolator);
Animator.start();
在一些实施例中,弹性引擎动效类的实现代码可以如下所示:
Public constructors:
Hwspringanimation(K object,floatpropertycompat<K>property,floatstiffness,float damping,float startvalue,float endvalue,float velocity)
Hwspringanimation(K object,floatpropertycompat<K>property,floatstiffness,float damping,float endvalue,float velocity)
具体例如:
Hwspringanimation animation=hwspringanimation(listview,Dynamicanimation.TRANSLATION_Y,400F,40F,0,1000F);
Animation.start();
(2)摩擦引擎
电子设备100检测到用户的滑动操作,以及该滑动操作的滑动速度。电子设备100可以利用摩擦力模型基于上述滑动速度确定页面滑动的相对位移S,从而确定页面的运动起点和运动终点。同时,电子设备100基于页面中各个模块的弹簧参数,利用阻尼传导算法可以确定每个页面模块的弹簧参数;进而在相对位移为S的页面滑动过程中,基于每个页面模块的弹簧参数控制各页面模块进行弹性力模型运动。
本申请实施例示例性提供了一种基于指数函数的摩擦力模型,如下公式③和公式④为摩擦力模型中速度V(velocity)、位移S、时间t的函数关系。
V(t)=V0*e-4.2*f*t ③
其中,V0为物体运动的初速度,t为物体运动的时间,f是物体运动过程中所受的摩擦力(friction)。
可以理解,摩擦力越大,物体越容易停止,物体的运动距离越短;反之越长。本申请实施例中,摩擦力可以是电子设备100根据具体场景进行设置的,也可以是电子设备100出厂默认设置的,还可以是用户设定的。
如图9A所示,是本申请实施例提供的一种摩擦力模型中速度V和时间t的曲线图。如图9B所示,是本申请实施例提供的一种摩擦力模型中位移S(t)和时间t曲线图。
在本申请的一些实施例中,电子设备100可以利用速度检测技术(例如,velocitytracker算法)拟合出页面在显示屏194上的滑动速度,并设为V0,然后利用公式③和公式④中的至少一个确定页面滑动的相对位移。其中滑动速度的单位可以是像素每秒。
本申请实施例中,用户操作的手速决定了页面滑动的初速度,由于物体最终都是会停止的,可以计算出时间t,通过初速度Vo和时间t来计算页面的位移。可选的,三方应用也可以自定义设定摩擦力模型中的参数。
在一些实施例中,针对不同的设备类型,使用摩擦力模型时,摩擦力变现出来的效果要求也不同,所以摩擦力的值应该在不同的设备上有所差异。一般来说,屏幕越大,移动的距离就会越明显,因此摩擦力的效果要越明显。所以不同的设备的特性配置文件上,摩擦力系数的设定可以存在差异。比如以手机作为参照物,不同的设备存在一定的差异值,如表3所示,表4示例性的示出了不同的设备的动效的摩擦力系数。
表4
手表 | 手机 | 平板 | 大屏 | |
摩擦力系数 | 1.2 | 1 | 0.8 | 0.6 |
针对不同的设备类型,此时在动效配置文件的特性配置文件可以体现不同的配置。以上述举例为例,name5代表摩擦力系数,在需要调用摩擦力动效的场景下,通过动效模型参数表获取到name5对应的value值。在手机配置文件中获取name5对应的value值为200;在手表配置文件中,从手表配置文件中获取name5对应的value值为200*1.2=240ms;在平板配置文件中,从平板配置文件中获取name5对应的value值为200*0.8=160;在大屏配置文件中,从大屏配置文件中获取name5对应的value值为200*0.6=120ms;等等。也即是说,应用研发人员无需针对不同的设备类型分别对摩擦力动效的name5进行不同的配置,只需使用同一套动效模型参数表,就可以在不同设备类型的动效配置文件中获取到适用于本设备的摩擦力动效的摩擦力系数,大大减少了工作量。
可以理解的,表4示出的不同设备的类型的刚性/阻尼增减系数只是一种示例性的方式,本申请还可以根据屏幕尺寸大小计算摩擦力,即摩擦力系数的VALUE值与屏幕的长度和/或宽度有关。其中,屏幕尺寸大小可以是电子设备的屏幕实际大小,也可以是电子设备的屏幕的显示区域大小。
在一些实施例中,摩擦力减速差值器的实现代码可以如下所示:
Public constructors:
Flinginterpolator(float initvelocity,float friction)
具体例如:
Physicalinterpolatorbase interpolator=new flinginterpolator(600F,0.5F);
Objectanimator animator=objectanimator.offloat(listview,“translationy”,0,Interpolator.getendoffset())
Animator.setduration(interpolator.getduration());
Animator.setinterpolator(interpolator);
Animator.start();
在一些实施例中,摩擦力动画类的实现代码可以如下所示:
Public constructors:
Hwflinganimation(K object,floatpropertycompat<K>property,floatinitvelocity,float friction)//object动画对象;property动画属性;
具体例如:
Hwflinganimation animation=hwflinganimation(listview,Dynamicanimation.TRANSLATION_Y,2000F,0.5F);
Animation.start();
(3)夹捏引擎
电子设备100识别到接收的用户操作为夹捏手势,响应于该用户操作,电子设备100从动效配置文件中调用夹捏设计的物理引擎以及属性参数,实现夹捏效果。其中,夹捏手势的基础功能为缩放,夹捏手势还可以实现旋转、移动等功能。用户使用手指在电子设备100的触摸屏上向内/外做夹捏动作,电子设备100显示基于用户的夹捏动作,展示相应的夹捏动效。
夹捏动效的实现涉及的参数包括跟手比率、缩放最大值/最小值等参数。
其中,跟手比率为向内/外夹捏时,手指行为过程和动效进程之间的比率关系。如图10所示,图10示例性示出了三种跟手比率,固定跟手比率1:1表示当用户使用手指在电子设备100的触摸屏上移动了1cm,则当前的页面跟随用户操作的方向同样移动1cm;固定跟手比率1:0.5表示当用户使用手指在电子设备100的触摸屏上移动了1cm,则当前的页面跟随用户操作的方向移动0.5cm;本申请提供了一种动态跟手比率,页面跟随用户操作的方向移动的位移如图10中的曲线所示,该曲线为e负指数曲线,该曲线的曲率可以通过改变参数而调节。
对于夹捏操作来说,固定跟手比率1:1表示当用户使用手指在电子设备100的触摸屏上对目标模块进行放大1cm,则该目标模块在当前页面上的长宽分别放大1cm;固定跟手比率1:0.5表示当用户使用手指在电子设备100的触摸屏上对目标模块进行放大1cm,则该目标模块在当前页面上的长宽分别放大0.5cm;动态跟手比率,页面跟随用户操作的方向移动的位移如图10中的曲线所示的对应关系,该曲线为e负指数曲线,该曲线的曲率可以通过改变参数而调节。
缩放最大值/最小值包括可夹捏最大值/最小值和静止最大值/最小值。
在一些实施例中,夹捏动效的实现涉及的参数还可以包括旋转角度、移动位移、透明度、模糊值等参数。在此基础上,还可让其他参数进行关联绑定夹捏动效,如惯性和回弹等。其中,惯性指的是用户操作松手后,对象会继承夹捏速度和方向继续进行小幅度运动;回弹指的是用户操作松手后,在满足预设条件下,对象会回弹复位,举例来说,当用户使用手指在电子设备100的触摸屏上向外做夹捏动作,对目标模块进行放大,若目标模块的大小超过最大预设尺寸,在用户松手后,目标模块的大小会回弹到该最大预设尺寸或者目标模块回弹到原始尺寸。又例如当用户使用手指在电子设备100的触摸屏上向内做夹捏动作,对目标模块进行缩小,若目标模块的大小低于最小预设尺寸,在用户松手后,目标模块的大小会回弹到该最小预设尺寸或者目标模块回弹到原始尺寸。
(4)拖拽引擎
电子设备100识别到接收的用户操作为拖拽手势,响应于该用户操作,电子设备100从动效配置文件中调用拖拽设计的物理引擎以及属性参数,实现拖拽效果。用户使用手指在电子设备100的触摸屏上做拖拽动作,电子设备100显示基于用户的拖拽动作,展示相应的拖拽动效。
拖拽动效的实现涉及的参数包括跟手比率。拖拽时,手指行为过程和动效进程之间可设定比率关系,该比率关系可以参考上述图10的相关描述,此处不再赘述。
对于拖拽操作来说,固定跟手比率1:1表示当用户使用手指在电子设备100的触摸屏上移动1cm,则当前页面跟手移动1cm;固定跟手比率1:0.5表示当用户使用手指在电子设备100的触摸屏上移动1cm,则当前页面跟手移动0.5cm;动态跟手比率,页面跟随用户操作的方向移动的位移如图10中的曲线所示的对应关系,该曲线为e负指数曲线,该曲线的曲率可以通过改变参数而调节。
在一些实施例中,拖拽动效的实现涉及的参数还可以包括对象的尺寸和形状变化,其中,尺寸或形状变化的过程可使用上述弹簧引擎中的插值器,此处不再赘述。
(5)翻页引擎
电子设备100识别到接收的用户操作为翻页操作,响应于该用户操作,电子设备100从动效配置文件中调用翻页设计的物理引擎以及属性参数,实现翻页效果。其中,电子设备100识别用户操作为翻页操作的条件可以包括以下一个或多个:
条件一,用户操作在预设方向上的滑动速度大于阈值。
条件二,用户操作在预设方向上的滑动距离大于阈值。
可以理解的,上述两个条件是示例性的列举,并不能构成对本申请实施例的限定。可选的,上述条件之间具有优先级,例如条件一的优先级高于条件二的优先级,若用户操作满足条件二却不满足条件一,则不能确定该用户操作为翻页操作。
翻页动效的实现涉及的参数包括跟手比率。如图11A和图11B所示,用户手指滑动图层1时,图层移动距离与手指滑动距离可以产生动态比率关系(跟手系数递减,例如上述图10中曲线的相关描述)或者固定跟手比率。
在一些实施例中,翻页动效的实现涉及到弹性力模型,这里,具体描述可以参考上述公式①和公式②的相关描述,三方应用也可以自定义设定弹性力模型中的弹性相关系数(刚性/阻尼系数)。
用户松手后,页面受弹簧影响,回弹至初始位置。在一些实施例中,用户松手后,页面继承离手瞬间的滑动加速度,受弹簧影响实现翻页。
(6)滑动引擎
电子设备100识别到接收的用户操作为滑动手势,响应于该用户操作,电子设备100从动效配置文件中调用滑动设计的物理引擎以及属性参数,实现滑动效果。用户使用手指在电子设备100的触摸屏上做滑动动作,电子设备100显示基于用户的滑动动作,展示相应的滑动动效。
滑动动效的实现涉及的参数包括跟手比率。滑动时,手指行为过程和动效进程之间可设定比率关系,该比率关系可以参考上述图10的相关描述,此处不再赘述。跟手滑动阶段,手指水平/竖直在界面上滑动,界面/元素跟随手指滑动距离产生位移。
在此基础上,还可让其他参数进行关联绑定滑动动效,如摩擦力和回弹等。其中,摩擦力涉及到摩擦力模型,能够控制页面滚动惯性停止,这里,具体描述可以参考上述公式③和公式④的相关描述,三方应用也可以自定义设定摩擦力模型中的相关系数(摩擦力系数)。
回弹包括惯性回弹和松手回弹,惯性回弹指的是页面滚动至边界时,摩擦力未能使其停止,页面过边界后回弹到边界或复位;松手回弹指的是用户操作将页面拖拽至过界,松手后,页面回弹到边界或复位。在一些实施例中,松手回弹涉及到弹性力模型,用户操作松手后,页面基于弹性力模型进行移动。
在一些实施例中,电子设备100当前显示的页面上有多个元素,电子设备100可以按各个元素距离边界的位置,依次定义各个元素的动效特征属性。当一个元素参数设定后,可据此设定其他关联元素(根据页面高/宽度、以及各个元素之间的距离自动计算阶梯关系)。在一些实施例中,以手指当前所在位置的元素,作为分界线,将界面分成两组内容,分别定义两组内容的动效特征属性。
3、系统动效
系统动效是动效配置文件中预设的动效模板,提供了一种转场场景使用的动效。转场场景包括应用到详情转场、跨应用转场、横竖屏转场、搜索转场等。相比于静态的界面,动态的系统动效更符合人类的自然认知体系,通过构建元素之间的位置关系,给用户传达缜密的空间感,易于理解动效的意义。能够有效地降低用户的认知负载,屏幕上元素的变化过程,前后界面的变化逻辑,以及层次结构之间的变化关系,都在动效的加持之下,变得更加清晰自然。
页面层级不同决定着动效的表达方式,表达方式不同传达的交互层级不同,不合理的动效编排会让用户误解,从而导致用户主观感受下降,流畅体验较差。当界面中的元素存在不同层级时,恰当的动效可以帮助用户理清前后位置关系,以动效来体现整个系统的空间感。在设计页面转场时,首先要理解页面的架构关系,根据页面的架构关系,来运用合适的动效手法,表意功能。
本申请实施例中,页面关系包括同层级(例如页面编辑、查看、横竖屏转场等),父子层级(例如应用的任意页面到详情页面的转场、新建页面的转场、解锁、搜索等)和跨层级(例如转到其他应用)。可以理解的,在真实世界中,物体可以相互堆叠,但是无法相互穿透。本申请实施例提供的共享转场(一镜到底)是一种编排方式,有助于提升用户操作任务效率,增强视觉流畅感。
下面示例性介绍本申请实施例提供的几种系统动效。
遮罩转场:页面间通用的左右或上下运动方式,完成页面间的衔接与过渡。例如图11A和图11B示出的从图层1转场到图层2的转场效果,图层2以遮罩的形式,跟随手势覆盖上图层1,实现遮罩转场效果。
共享元素:以元素为单位,通过两个页面的共享元素建立页面转换的自然衔接与过渡。例如图12A所示,图12A示出了一种短信界面,该短信界面包括搜索框1201、标题名称1202以及短信列表1203。当电子设备100接收到针对于搜索框1201的用户操作,响应于该用户操作,电子设备100显示如图12C示出的短信搜索界面,该短信搜索界面包括搜索框1201和键盘1203。其中,图12B示例性的示出了图12A和图12C之间的系统动效。在视觉上,图12A和图12C的显示页面在切换时,图12A中的元素不是立即消失,图12C中的元素也不是立即出现的。如图12B所示,标题名称1202和短信列表1203为出场元素,运动方向可以为向下,直至出场元素完全不显示在显示屏中;键盘1203为进场元素,运动方向可以向上,直至进场元素移动到显示屏的预设位置;搜索框1201为持续元素,也可称为共享元素,可以运动也可以不运动。这里,通过两个页面的共享元素实现了页面之间的自然衔接与过渡。
共享容器:以组件为单位,通过组件持续运动,集合组件内元素变化来完成页面的衔接与过渡。例如图13A所示,图13A示出了一种图库界面,该图库界面包括缩略图1301、缩略图1302、缩略图1303、缩略图1304等多张缩略图。当电子设备100接收到针对于图片1301的用户操作,响应于该用户操作,电子设备100显示如图13C示出的图片显示界面,该图片显示界面包括放大后的缩略图1301和返回控件1305。其中,图13B示例性的示出了图13A和图13C之间的系统动效,在视觉上,图13A和图13C的显示页面在切换时,是集合了缩略图1301内元素变化(图片逐渐放大)来完成页面的衔接与过渡的。如图13B所示,缩略图1302、缩略图1303、缩略图1304等多张缩略图为出场元素,运动方向可以为沿着斜线,一边有规律的放大,一边运动出显示屏;返回控件1305为进场元素;缩略图1301为共享容器,可选的,缩略图1301在放大的过程中,退场元素逐渐透明。
共享动势:页面与元素间切换,通过运用相同的运动属性来完成页面间的衔接与过渡。
4、控件动效
控件动效是动效配置文件中预设的动效模板,提供了针对控件使用的动效。例如RecycleView、Floating action button等控件,控件动效主要就是与UX框架中的控件部分绑定的动效,类似于控件的动效特征属性,以一个固定控件的形式提供给用户使用。比如图1A和图1B中示出的效果(数字按钮1变灰了)等等。
5、特征动效
特征动效是动效配置文件中预设的动效模板,应用软件可以自由选择使用。本申请实施例提供了包括特征波纹、特征律动、特征韵律、特征生长、特征融合、特征呼吸、特征旋绕等不同的特征动效模板。特征动效比引导交互类动效有更强烈的动画视觉风格,让用户感受到鲜明的个性,以及动画本身所传递的魅力。
6、应用动效
不同的应用程序可以直接基于动效配置文件调用相应的应用动效。应用动效是动效配置文件中针对应用软件预设的动效模板,例如相机动效、图库动效、设置动效等等。动效模板中可以包括进场、转场、退场等场景下对应的动效模板。
以上描述了本申请实施例中的动效配置文件中提供的动效特征属性以及动效模板,可以看出,本申请实施例提供的动效配置文件包括了动效特征属性以及特征属性对应的参数和动效模板。动效特征属性是基于动效的特征从而归纳提取出的一套特征属性,例如包括动效时长、动效曲线、帧率等,这套特征属性可以配置不同的参数组合成各种不同动效。即配置不同的动效时长、不同的动效曲线、帧率等,组合起来的动效也是不同的,研发人员可以按需进行动效特征属性参数的配置。动效模板是基于动效特征属性参数而预设的固定组合,例如包括以上描述的物理引擎、控件动效、系统动效、特征动效等,每一个动效模板都是具有动效特征属性参数的,电子设备100可以直接调用动效模板,而无需对每一个动效都进行动效特征属性参数的配置。电子设备100可以基于动效配置文件中的动效特征属性参数和动效模板,提供给应用程序、系统、控件直接使用。
例如应用软件可以基于提供的动效配置文件生成应用的动效模型参数表,从而基于动效模型参数表调用电子设备100中的动效配置文件。又例如控件关联了动效特征属性参数,可以通过接口直接调用动效配置文件中的控件动效;电子设备100的系统可以通过接口直接调用动效配置文件的系统动效。当动效配置文件更新,调用的动效效果也相应的进行更新,这种方式能够实现对动效的统一管理。并且本申请实施例提供了适用于不同设备类型的特性配置文件,能够实现应用只需提供一份动效模型参数表,即可适用在不同设备类型上的效果。
下面介绍电子设备100调用动效配置文件的具体方法实现。
电子设备100在系统中安装好动效配置文件,电子设备100可以通过提供目标主题(例如EMUI主题)或者其他资源列表的方式对外提供动效的参数资源。电子设备100集成动效资源包,并且模块需将自身依赖的,软件开发工具包(Software Development Kit,SDK),包括扩展资源包(APK,package-export.apk)升级至相应的版本。
应用软件(包括系统应用和三方应用)通过资源ID的方式来访问动效配置文件,基于动效配置文件生成应用软件的动效模型参数表,基于动效模型参数表使用动效配置文件中的动效资源。
举例来说,动效模型参数表中@animation/emui_animation_short_time表示调用动效配置文件中的动效资源shorttime(短时间),或者@dimen/emui_animation_leave_time表示调用动效配置文件中的动效资源leavetime(离场时间),等等。以设置时长参数为例,时长参数在动效的使用中有两种方式:在XML/Java代码中设置。其中,
1、在layout xml中设置
1)华为动效分层参数的使用时采用问号加华为包名形式,如字体大小正文1:?Android/hwanimation:attr/emui_animation_short_time。
2)android原生attr方法使用时采用问号加android包名形式,如系统高亮色:?Android:attr/coloraccent。
2、在代码中设置
//步骤1,创建动效实例
Valueanimator anim=valueanimator.ofint(0,3);
//步骤2,设置动效的时间
Anim.setduration(500);
//基于动效配置文件设置时间参数
If(gettheme().resolveattribute(android.R.attr.Emui_animation_short_time,outvalue,true)){Int timevalue=getresources().getanimation(outvalue.resourceId);Anim.setduration(timevalue);}
类似上面的时间参数,其他所有的参数都能够从动效配置文件中获取出动效参数的对应值。在一些实施例中,获取到了动效的相关属性之后,电子设备100可以再进行二次加工处理,比如可以按照实际需要对属性值进行放大或者缩小等。
本申请实施例,图14示出了一种应用程序调用动效配置文件的方法流程。
步骤101、电子设备100运行应用A。
步骤102、判断电子设备100是否为首次运行应用A。
这里的“首次”包括电子设备100安装应用A后第一次运行应用A;还包括电子设备100的动效配置文件更新后,第一次运行应用A,也即是说,每当电子设备100更新一次动效配置文件后,电子设备100第一次运行应用A即为首次运行应用A。则电子设备100首次运行应用A,电子设备100读取动效配置文件,将最新的动效配置文件保存在应用A中。
若是,步骤103、电子设备100读取动效配置文件并保存在应用A的应用数据中。
步骤104、电子设备100从应用A的应用数据中解析动效配置文件。
电子设备100从应用A的应用数据中解析动效配置文件,并生成应用A的动效模型参数表,该应用A的动效模型参数表中定义的动效特征属性可以与动效配置文件中定义的动效特征属性可以相同,也可以不同。
若不是,则直接执行步骤104。
步骤105、电子设备100从解析后的动效配置文件中获取并调用单个动效的属性数据。
电子设备100从应用数据中解析动效配置文件后,解析后的动效配置文件可以看做是应用A的动效模型参数表,基于应用A的动效模型参数表获取动效特征属性的相关数据,并调用该动效特征属性的相关数据。例如当电子设备100检测到运行应用A,此时需要展示进场动效,则电子设备基于应用A的动效模型参数表,获取进场动效所需的动效特征属性参数或动效模板,从应用A的应用数据中调用相应的动效特征属性参数或动效模板,进而显示进场动效。
在一些实施例中,在电子设备100从应用数据中解析动效配置文件,生成应用A的动效模型参数表,研发人员可以对该应用A的动效模型参数表中动效特征属性的配置进行修改,然后保存在应用A的动效模型参数表中,电子设备100基于应用A的动效模型参数表中调用动效特征属性的相关数据。
举例来说,基于动效配置文件中的动效特征属性参数对应用A的进场场景的动效进行自定义,以时长参数为例,在动效配置文件中的时长参数包括time1、time2、time3等,则可以在应用A的动效模型参数表中定义进场场景动效的时长参数为time1。当动效配置文件中time1为10ms,则电子设备100显示进场动效的时长为10ms;当动效配置文件更新time1为20ms,则name1对应的value值为20ms,则电子设备100显示进场动效的时长为20ms。可选的,value指示的值也可以是一个固定的值,举例来说,在进场动效的场景下,通过动效模型参数表获取到name1对应的value值为10ms,则此时电子设备100显示进场动效的时长为10ms。
综上所述,应用软件可以获取动效配置文件后自定义对动效模型参数表中的动效参数进行修改适配,然后按需进行使用。由于应用数据只是针对该应用生效,所以对于其他应用来说,电子设备100内核层的动效配置文件还是可以继续独立使用,应用之间互不干扰,可以在统一的动效配置文件中实现个性化的动效效果。
下面基于上述对软件系统架构和动效配置文件的具体描述,介绍本申请实施例中电子设备100对动效配置文件的替换过程。当研发人员想要针对动效配置文件中已有的场景对应的动效参数进行更改,需要先获取到当前想要修改的动效参数name进行修改。修改完成后,电子设备100基于调测APK生成新的动效配置文件,将现有的动效配置文件进行替换。其中,调测apk可以读取当前所有scence的配置,并支持修改覆盖。
示例性的,overlay是一种资源替换机制,它能在不重新打包apk的情况下,实现资源文件的替换(res目录非assert目录)。Overlay分为静态overlay(Static ResourceOverlay,SRO)和运行时overlay(Runtime Resource Overlay,RRO),RRO又称为动态Overlay。
静态overlay发生在编译时,需要在系统源码环境中进行配置。动态overlay的资源替换发生在运行时,能直接定制替换第三方APK的资源,而不需要其源码。
如图15所示,图15示例性示出了动效配置文件中部分的动效场景下的特征属性的参数配置。图15中,在一个进场场景(scence transfer open enter)下的特征属性例如有进场时长name:hw_scence_transfer_open_enter_duration,数据类型type:integer,参数值value:300。在该进场场景下还包括value为50的延迟时长(name:delay),数据类型type:integer。基于上述的特征属性以及特征属性参数的配置,指示了该进场动效下的特征属性包括时长属性,且时长对应的参数值为300ms,并且该进场动效进行延迟展示,延迟时间为50ms。
接下来为对上述进场场景的子动效透明度(hw_scence_transfer_open_enter_alpha)下的特征属性进行的配置,例如有:
进场时长name:hw_scence_transfer_open_enter_alpha_duration,数据类型type:integer,参数值value:300;
还有延迟时长hw_scence_transfer_open_enter_alpha_delay,数据类型type:integer,参数值value:50;
插值器的起点hw_scence_transfer_open_enter_alpha_from,数据类型type:float,参数值value:0;插值器的终点hw_scence_transfer_open_enter_alpha_to,数据类型type:float,参数值value:1;
插值器的节点1的横坐标X1,name:hw_scence_transfer_open_enter_alpha_X1,数据类型type:float,参数值value:1;
插值器的节点1的纵坐标Y1,name:hw_scence_transfer_open_enter_alpha_delay,数据类型type:float,参数值value:0.4;
插值器的节点2的横坐标X2,name:hw_scence_transfer_open_enter_alpha_delay,数据类型type:float,参数值value:0.2;
插值器的节点2的纵坐标Y2,name:hw_scence_transfer_open_enter_alpha_delay,数据类型type:float,参数值value:1;
基于上述的特征属性以及特征属性参数的配置,定义了一种贝塞尔曲线,指示了电子设备100的进场动效中的透明度动效是基于该贝塞尔曲线进行变化的。
上述示例性的示出了动效配置文件中部分的动效场景下的特征属性的参数配置,当研发人员想要对动效配置文件进行修改,可以在动效配置文件中查询对应的scence节点,并根据scence节点name在动效配置文件中进行配置属性。
举例来说,研发人员想要对应用A的进场动效的动效时长进行更改,需要查询并获取到应用A的动效模型参数表中进场动效的动效参数。获取到进场动效的动效时长参数value值为app_open_duration,然后在动效配置文件(例如frameworks/base/core/res-hwext/res/values/integers.xml中的资源文件)中定义:
<integer name="app_open_duration">-1</integer>,其中integer为一种数据类型(type),数据类型还包括int,float,double等。初始化定义成-1是一个非法值,也可以定义成默认的推荐值,比如150。
接下来在/frameworks/base/core/res-hwext/res/values/symbols.xml中建立新的场景:
<java-symbol type="integer"name="app_open_duration"/>
这里只有type和name的方式,更改参数的具体数值value可以由用户设定,也可以使用默认值,比如150。
配置完成后,电子设备100动态获取更改后的场景一的动效时长参数value值app_open_duration。具体代码可以为
long tempLandEnterDuration=
refreshAnimationDuration(com.android.hwext.internal.R.integer.app_open_duration);
if(tempLandEnterDuration>0L){
landEnterAnimDuration=tempLandEnterDuration;
}
animation.setDuration(landEnterAnimDuration);
其中,针对refreshAnimationDuration函数的实现,具体代码可以为
refreshAnimationDuration(int resId){
long tempDuration=0L;
if(mHwextContext==null){
return tempDuration;
}
tempDuration=mHwextContext.getResources().getInteger(resId);
return tempDuration;
}
其中,tempLandEnterDuration可以使用默认获取的值,也可以动态修改完成之后再设定。确定参数后,电子设备100会生成一个xml文件,用于overlay的替换。电子设备100针对调节系统生成的xml文件进行解析,生成overlay的apk文件。电子设备100生成了oevrlay的apk文件之后,通过调测apk替换进系统版本即可生效。其中调测apk可以读取当前所有scence的配置,并支持修改覆盖。进一步的,动效配置文件完成了替换,电子设备100更新动效模型参数表(总表)。
电子设备100在下一次运行应用A时,若电子设备100是首次运行应用A,则电子设备100读取动效配置文件,并将动效配置文件保存在应用A的应用数据中。这里的“首次”包括电子设备100安装应用A后第一次运行应用A;还包括电子设备100的动效配置文件更新后,第一次运行应用A,也即是说,每当电子设备100更新一次动效配置文件后,电子设备100第一次运行应用A即为首次运行应用A。则电子设备100首次运行应用A,电子设备100读取动效配置文件,将最新的动效配置文件保存在应用A中。电子设备100从应用数据中解析动效配置文件,基于应用A的动效模型参数表获取动效特征属性的相关数据,并调用该动效特征属性的相关数据。
上述介绍了对动效配置文件进行替换的方法流程,可以适用于上述对动效配置文件中的已有场景进行更改的情况,在一些实施例中,还可以适用于在动效配置文件中新增场景的情况。不同的是,新增场景需要按照不同的动效类型进行不同的处理和实现。不同的动效类型需要替换的资源文件存在差异,动效类型包括系统动效、控件动效、应用动效、特征动效、自定义动效等。例如系统动效是提供给系统调用的,应用动效是提供给应用程序层调用的,自定义动效是基于动效特征属性参数而设定的,特征动效、控件动效、系统动效、物理引擎等也可以配置在不同的动效配置文件中。当研发人员想要新增场景,基于场景对应的动效类型,需要在相应的动效配置文件中进行新增配置,然后电子设备100基于调测APK生成新的动效配置文件,将现有的动效配置文件进行替换。
本申请实施例还提供了一种智能动态学习方法,电子设备100可以动态改变动效配置文件中动效特征属性的参数值(value值)。该方法可以基于用户的使用习惯、当前场景以及各项用户生成的数据进行分析,根据预设规则对动效配置文件进行更新。
预设规则一,基于用户的操作习惯对动效配置文件进行更新,例如用户的操作速度。用户在使用电子设备100时,电子设备100统计接收到用户操作的间隔和时间,若用户操作之间的间隔比较短,即在用户操作在一定的时间段内操作速度较快,则体现了用户的性格或者诉求是讲究高效的。具体的,当电子设备100检测到相邻两次用户操作之间的时间间隔小于预设时间,电子设备100统计次数加1,若电子设备100在预设时间内(例如一个小时内),统计次数超过阈值,则电子设备100将动效配置文件中动效的时长参数的value值进行缩短。
在一些实施例中,电子设备100可以具体针对某个动效模板对动效配置文件进行更新。例如,动效配置文件中包括系统动效、控件动效、特征动效等动效模板,电子设备100统计接收到的每个用户操作对应调用的动效模板,若在预设时间内同一个动效模板的调用次数大于阈值,则电子设备将该动效模板中的时长参数的value值进行缩短;或者在预设时间内同一种动效模板的调用次数大于阈值,则电子设备将该种动效模板中的时长参数的value值进行缩短,例如系统动效中包括多种不同的动效样式,该多种不同的动效样式属于同一种动效模板。
举例来说,在一个退场动效的展示开始到结束的过程中,电子设备100识别到在该过程中用户的点击操作较为频繁(例如大于5次),则电子设备100基于动效配置文件查询出该退场动效的时长属性,并将该退场动效的时长属性对应的参数进行缩短,例如可以缩短为原数值的50%。则在电子设备100下一次展示该退场动效时,该退场动效的时长为上一次时长的50%。
预设规则二,基于用户的操作习惯对动效配置文件进行更新,例如用户对电子设备100的使用距离。用户在使用电子设备100时,电子设备100检测用户人脸与显示屏的物理距离,检测方式可以是通过摄像头、或者利用红外线等方式。若用户使用电子设备100时一直距离屏幕比较近,则体现了用户可能需要动效的效果更明显。具体的,若电子设备100检测到用户人脸与显示屏的物理距离小于预设距离,且该情况超过了预设时间,电子设备100可以将动效配置文件中动效的幅度进一步扩大,例如将弹性力模型中刚性/阻尼传导系数减小,例如减少为原数值的80%。
预设规则三,基于时间对动效配置文件进行更新。白天(例如5:00~19:00)用户参与工作,需要追求效率,则动效的时间可以更加便捷,效果可以更加的简便。夜晚(例如19:00~第二天5:00)用户相对来说比较休闲,则动效的时间与效果都可以相对复杂,酷炫。用户可以更加体验到动效之美。
具体的,电子设备100识别到当前的时间处于第一时间段(例如5:00~19:00),电子设备100更新动效配置文件为第一配置;电子设备100识别到当前的时间处于第二时间段(例如19:00~第二天5:00),电子设备100更新动效配置文件为第二配置。其中,第一配置中第一动效的时长属性对应的参数值比第二配置中第一动效的时长属性对应的参数值更短;或者,第一配置中第一动效的刚性/阻尼传导系数比第二配置中第一动效的刚性/阻尼传导系数更大;或者,第一配置中第一动效的摩擦力比第二配置中第一动效的摩擦力更小;等等。
预设规则四,基于当前场景对动效配置文件进行更新,例如投屏场景、用户自我使用场景等。在电子设备100投屏使用时,动效往往是给大众展示的,那么此时动效的各项指标都应该基于标准的审美与人因来实现。而用户自我使用时,可以依赖用户的时间、习惯等进行自定义化实现。
具体的,电子设备100识别到当前的使用模式为投屏模式,电子设备100将动效配置文件从第三配置更新为第四配置,当电子设备100识别到当前的使用模式为非投屏模式,电子设备100将动效配置文件从第四配置恢复为第三配置。其中,第三配置中包括基于用户而做出的个性化配置,第四配置为动效配置文件中的默认配置。
又例如当前场景为用户正在赶高铁,电子设备100检测到用户当前的运动速度大于阈值,判断用户正在跑步,合理推测现在用户处于一种着急的状态,例如赶高铁、赶飞机等。这时,电子设备100将动效配置文件从第五配置更新为第六配置。其中,第六配置中第一动效的时长参数比第五配置中第一动效的时长参数更短。
举例来说,电子设备100检测到用户在一秒的时间内运动路程超过阈值(例如3.6米),则可以查询动效配置文件中的系统动效、应用动效、控件动效或特征动效等动效中的时长属性,并将时长属性对应的参数进行缩短,例如可以缩短为原数值的50%。则在电子设备100下一次展示该系统动效、应用动效、控件动效或特征动效等动效时,动效的时长为上一次时长的50%。
预设规则五,基于用户设置对动效配置文件进行更新。用户可以进行自定义的设置,电子设备100提供动效配置文件的参数设置的入口,用户可以按需定义,从而实现并体验动效的效果。具体的,电子设备100接收到针对于动效配置文件的设置操作,对动效配置文件进行更新。
在一些实施例中,基于用户设置对应用的动效模板参数表进行更新。用户可以进行自定义的设置,电子设备100提供应用的动效模板参数表的参数设置的入口,用户可以按需定义,从而实现并体验动效的效果。具体的,电子设备100接收到针对于应用A的动效模板参数表的设置操作,对应用A的动效模板参数表进行更新。
上述示例性的说明了几种更新动效配置文件的预设规则,可以理解的,本申请实施例对预设规则不作限制。
需要说明的是,应用软件是基于自身的动效模板参数表调用电子设备100的动效配置文件,当电子设备100对动效配置文件进行更新,所有应用软件的动效效果都会随着动效配置文件的更新发生改变。当电子设备100对应用A的动效模板参数表进行更新,应用A的动效效果会随着动效模板参数表的更新发生改变,并不影响其他应用的动效效果。
在一些实施例中,用户可以进行自定义的设置,电子设备100提供参数设置的入口,用户可以按需定义来实现并体验动效的效果。其中,电子设备100可以对动效配置文件进行更新,也可以对应用软件的动效模型参数表进行更新。
下面介绍本申请实施例涉及的一种具体的应用场景。
电子设备100运行第一应用,若是首次运行,则读取并保存电子设备100的系统中的动效配置文件(共性配置文件和电子设备100的特性配置文件)到第一应用的应用数据中。电子设备100基于对动效配置文件的解析生成第一应用的动效模型参数表。电子设备100从第一应用的动效模型参数表中查询进场动效的相关属性name以及name对应的value值,例如查询到第一应用的进场动效的name1(时长)=value1(enter time),电子设备100基于进场动效的相关属性name访问第一应用的应用数据中的动效配置文件,获取该name1下的具体参数值(例如enter time为2s),电子设备1000基于获取到的参数值展现第一应用提供的进场动效的动效内容,例如在2s的时间里播放动效内容。
进场动效播放结束后,电子设备100显示第一应用的首页的应用界面。当电子设备100检测到针对于首页的应用界面的滑动操作,从第一应用的动效模型参数表中查询滑动动效的相关属性name,例如查询到滑动动效的name1(时长)=value2(short time)、name2(曲线)=value3(曲线1)等,电子设备100基于滑动动效的相关属性name访问第一应用的应用数据中的动效配置文件,获取该name1和name2下的具体参数值(例如short time为150ms、曲线1为插值器为33-33的贝塞尔曲线),电子设备基于获取到的参数值展现所述滑动动效,例如在2s的时间里播放动效内容。
电子设备100运行第二应用,若是首次运行,则读取并保存电子设备100的系统中的动效配置文件(共性配置文件和电子设备100的特性配置文件)到第二应用的应用数据中。电子设备100从第二应用的动效模型参数表中查询进场动效的相关属性name,例如查询到第二应用的进场动效为动效模板1,电子设备100访问第二应用的应用数据中的动效配置文件,获取动效模板1的具体参数值,包括时长、动效内容等参数,电子设备100基于获取到的参数值展现动效模板1。
若电子设备100更新了系统中的动效配置文件,则在更新后第一次运行第一应用,电子设备100读取并保存更新后的动效配置文件到第一应用的应用数据中,即第一应用的应用数据中保存最新的动效配置文件。第二应用同理。
对于同一个应用,在不同的设备类型中可以使用相同的动效模型参数表。电子设备200(与电子设备100的设备类型不同,例如电子设备100为手机,电子设备200为平板)首次运行第一应用,电子设备100读取并保存电子设备200的系统中的动效配置文件(共性配置文件和电子设备200的特性配置文件)到第一应用的应用数据中,电子设备200从第一应用的动效模型参数表中查询动效的相关属性,并基于应用数据中的动效配置文件展现相应的动效。第二应用同理。
综上所述,应用程序可以只用一个动效模型参数表,实现多设备之间的动效模型参数表的共享使用;并且,基于对动效配置文件的完善和更新,电子设备能够对不同应用的动效进行统一管理。这些,能够减少应用研发人员的人力投入,提高开发效率。
下面对本申请提供的一种动效处理方法步骤进行描述,如图16所示,该方法包括:
步骤S201:电子设备运行第一应用。
步骤S202:电子设备调用动效配置文件,显示第一应用的第一动效,动效配置文件包括第一动效的N个特征属性和N个特征属性对应的值,N为正整数。
步骤S203:电子设备运行第二应用。其中,第一应用和第二应用可以为本申请实施例中提及的应用A和应用B。
步骤S204:调用动效配置文件,显示第二应用的第二动效,动效配置文件中包括第二动效的M个特征属性和M个特征属性对应的值,M为正整数。
本申请实施例,电子设备提供了适用于系统、控件以及应用程序的动效调用的动效配置文件。对于应用程序来说,例如应用A和应用B,应用A和应用B调用同一个动效配置文件,基于该同一个动效配置文件显示应用中的动效,电子设备的系统和控件同理,也可以基于该动效配置文件进行动效的调用。动效配置文件中包括了动效的多个特征属性,该特征属性是基于动效的特征从而归纳提取出的一套特征属性,将已有的动效基于一套特征属性进行配置,能够实现对不同的动效的统一管理。
在一种可能的实施方式中,电子设备运行第一应用,包括:电子设备接收第一操作;响应于第一操作,电子设备运行第一应用;电子设备运行第二应用,包括:电子设备接收第二操作;响应于第二操作,电子设备运行第二应用。这里,指示了电子设备基于第一操作运行第一应用,则该第一动效可以是第一应用的进场动效,电子设备基于第一操作运行第二应用,则该第二动效可以是第二应用的进场动效。
在一种可能的实施方式中,N个特征属性和M个特征属性中均包括动效配置文件的第一特征属性,第一特征属性对应的取值为第一值,方法还包括:电子设备将第一特征属性对应的第一值修改为第二值;电子设备接收第三操作;电子设备响应于第三操作,运行第一应用;电子设备调用动效配置文件,基于第一特征属性的第二值显示第一动效;电子设备接收第四操作;电子设备响应于第四操作,运行第二应用;电子设备调用动效配置文件,基于第一特征属性的第二值显示第二动效。这里描述了第一动效和第二动效存在共同的一个特征属性为第一特征属性,由于第一应用和第二应用都是基于动效配置文件来进行动效的调用的,当动效配置文件中的第一特征属性的值发生改变,则第一动效和第二动效的显示效果均基于第一特征属性的值的改变而改变。系统动效和空间动效同理,当动效配置文件中一个特征属性的值发生了改变,则调用该特征属性的动效均随之发生改变。这里实现了电子设备统一对多个应用的动效进行管理和修改,大大减少了研发人员的工作量。
在一种可能的实施方式中,特征属性包括时长属性、曲线属性、帧率属性。特征属性还可以包括颜色属性、透明度属性等等。
在一种可能的实施方式中,方法还包括:电子设备调用动效配置文件,显示第三动效,动效配置文件中包括第三动效对应的动效模板,动效模板由至少一个特征属性定义而成。本申请实施例中,动效配置文件中提供的动效模板包括物理引擎(滑动、拖拽、夹捏、速度、弹簧、摩擦力、跟手、翻页等)、系统动效(一镜到底、层次关系、运动编排等)、控件动效(各种控件的动效)、特征动效(波纹、律动、生长、韵律、融合、呼吸、旋转等)、应用动效等等。
在一种可能的实施方式中,电子设备调用动效配置文件,显示第一应用的第一动效,包括:电子设备获取动效配置文件,并将动效配置文件保存在第一应用的应用数据中;电子设备解析动效配置文件,生成第一应用的动效模型参数表;电子设备基于第一应用的动效模型参数表,获取第一动效的N个特征属性和N个特征属性对应的参数值,显示第一动效。电子设备的第一应用获取内核层的动效配置文件保存到自身的应用数据中,解析动效配置文件获取到动效参数,生成自身的动效模型参数表。基于自身的动效模型参数表展示对应的动效。当动效配置文件进行更新,应用A和应用B再一次获取动效配置文件进行更新,展现的动效也随之更新。这里,实现了电子设备对不同应用的动效进行统一管理的功能。
在一种可能的实施方式中,第一应用的动效模型参数表中第四动效的特征属性与动效配置文件中第四动效的特征属性不同;或者,第一应用的动效模型参数表中第四动效的特征属性对应的值,与动效配置文件中第四动效的特征属性对应的值不同。这里描述了第一应用的动效模型参数表中的动效的特征属性可以与动效配置文件中的不同,研发人员可以针对第一应用的动效模型参数表进行自定义修改,且不影响动效配置文件的内容。即本申请实施例支持应用软件的动效个性化设计。
在一种可能的实施方式中,方法还包括:在满足预设规则的情况下,电子设备修改动效配置文件中的第五动效的第二特征属性对应的值。这里描述了电子设备可以在满足预设规则的情况下,动态的对动效配置文件进行修改,增强了配置的灵活性。这里的预设规则可以参考上述预设规则一至预设规则五。
本申请实施例中提到的第一动效、第二动效、第三动效、第四动效可以为基于动效配置文件提供的动效模板中的一个动效模板,或者是基于动效配置文件中的特征属性进行定义的动效。第一特征属性、第二特征属性可以为动效配置文件中的其中一个特征属性。
本申请实施例还提供了一种计算机可读存储介质。上述方法实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。如果在软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或者在计算机可读介质上传输。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何可用介质。
本申请实施例还提供了一种计算机程序产品。上述方法实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。如果在软件中实现,可以全部或者部分得通过计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照上述方法实施例中描述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (21)
1.一种动效处理方法,其特征在于,包括:
电子设备运行第一应用;
所述电子设备调用动效配置文件,显示所述第一应用的第一动效,所述动效配置文件包括所述第一动效的N个特征属性和所述N个特征属性对应的值,N为正整数;
所述电子设备运行第二应用;
所述电子设备调用所述动效配置文件,显示所述第二应用的第二动效,所述动效配置文件中包括所述第二动效的M个特征属性和所述M个特征属性对应的值,M为正整数;
其中,所述动效配置文件包括共性配置文件和特性配置文件,所有类型的电子设备对应相同的共性配置文件,不同类型的电子设备对应不同的特性配置文件。
2.根据权利要求1所述的方法,其特征在于,所述电子设备运行第一应用,包括:
所述电子设备接收第一操作;
响应于所述第一操作,所述电子设备运行所述第一应用;
所述电子设备运行第二应用,包括:
所述电子设备接收第二操作;
响应于所述第二操作,所述电子设备运行所述第二应用。
3.根据权利要求1所述的方法,其特征在于,所述N个特征属性和所述M个特征属性中均包括所述动效配置文件的第一特征属性,所述第一特征属性对应的取值为第一值,所述方法还包括:
所述电子设备将所述第一特征属性对应的第一值修改为第二值;
所述电子设备接收第三操作;
所述电子设备响应于所述第三操作,运行所述第一应用;
所述电子设备调用所述动效配置文件,基于所述第一特征属性的第二值显示所述第一动效;
所述电子设备接收第四操作;
所述电子设备响应于所述第四操作,运行所述第二应用;
所述电子设备调用所述动效配置文件,基于所述第一特征属性的第二值显示所述第二动效。
4.根据权利要求1所述的方法,其特征在于,所述特征属性包括时长属性、曲线属性、帧率属性。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述电子设备调用所述动效配置文件,显示第三动效,所述动效配置文件中包括所述第三动效对应的动效模板,所述动效模板由至少一个所述特征属性定义而成。
6.根据权利要求1所述的方法,其特征在于,所述电子设备调用动效配置文件,显示所述第一应用的第一动效,包括:
所述电子设备获取动效配置文件,并将所述动效配置文件保存在所述第一应用的应用数据中;
所述电子设备解析所述动效配置文件,生成所述第一应用的动效模型参数表;
所述电子设备基于所述第一应用的动效模型参数表,获取所述第一动效的N个特征属性和所述N个特征属性对应的参数值,显示所述第一动效。
7.根据权利要求6所述的方法,其特征在于,所述第一应用的动效模型参数表中第四动效的特征属性与所述动效配置文件中所述第四动效的特征属性不同;或者,所述第一应用的动效模型参数表中第四动效的特征属性对应的值,与所述动效配置文件中所述第四动效的特征属性对应的值不同。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在满足预设规则的情况下,所述电子设备修改所述动效配置文件中的第五动效的第二特征属性对应的值。
9.根据权利要求8所述的方法,其特征在于,所述预设规则为在预设时间段内,相邻两次用户操作之间的时间间隔小于预设时间的次数超过阈值;
所述电子设备修改所述动效配置文件中的第五动效的第二特征属性对应的值,包括:
所述电子设备将所述动效配置文件中第五动效的时长属性对应的值减少,所述第二特征属性包括所述时长属性。
10.根据权利要求8所述的方法,其特征在于,所述预设规则为当所述电子设备的当前时间处于第一时间段,所述动效配置文件为第一配置;
当所述电子设备的当前时间处于第二时间段,所述动效配置文件为第二配置;其中,所述第一配置中第五动效的时长属性对应的值比所述第二配置中所述第五动效的时长属性对应的值小;所述第二特征属性包括所述时长属性。
11.一种电子设备,为电子设备,其特征在于,包括:处理器,存储器和通信接口;其中,所述存储器、所述通信接口和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述电子设备执行:
运行第一应用;
调用动效配置文件,显示所述第一应用的第一动效,所述动效配置文件包括所述第一动效的N个特征属性和所述N个特征属性对应的值,N为正整数;
运行第二应用;
调用所述动效配置文件,显示所述第二应用的第二动效,所述动效配置文件中包括所述第二动效的M个特征属性和所述M个特征属性对应的值,M为正整数;
其中,所述动效配置文件包括共性配置文件和特性配置文件,所有类型的电子设备对应相同的共性配置文件,不同类型的电子设备对应不同的特性配置文件。
12.根据权利要求11所述的电子设备,其特征在于,所述运行第一应用,包括:
接收第一操作;
响应于所述第一操作,运行所述第一应用;
所述运行第二应用,包括:
接收第二操作;
响应于所述第二操作,运行所述第二应用。
13.根据权利要求11所述的电子设备,其特征在于,所述N个特征属性和所述M个特征属性中均包括所述动效配置文件的第一特征属性,所述第一特征属性对应的取值为第一值,所述电子设备还执行:
将所述第一特征属性对应的第一值修改为第二值;
接收第三操作;
响应于所述第三操作,运行所述第一应用;
调用所述动效配置文件,基于所述第一特征属性的第二值显示所述第一动效;
接收第四操作;
响应于所述第四操作,运行所述第二应用;
调用所述动效配置文件,基于所述第一特征属性的第二值显示所述第二动效。
14.根据权利要求11所述的电子设备,其特征在于,所述特征属性包括时长属性、曲线属性、帧率属性。
15.根据权利要求11所述的电子设备,其特征在于,所述电子设备还执行:
调用所述动效配置文件,显示第三动效,所述动效配置文件中包括所述第三动效对应的动效模板,所述动效模板由至少一个所述特征属性定义而成。
16.根据权利要求11所述的电子设备,其特征在于,所述电子设备调用动效配置文件,显示所述第一应用的第一动效,包括:
所述电子设备获取动效配置文件,并将所述动效配置文件保存在所述第一应用的应用数据中;
所述电子设备解析所述动效配置文件,生成所述第一应用的动效模型参数表;
所述电子设备基于所述第一应用的动效模型参数表,获取所述第一动效的N个特征属性和所述N个特征属性对应的参数值,显示所述第一动效。
17.根据权利要求16所述的电子设备,其特征在于,所述第一应用的动效模型参数表中第四动效的特征属性与所述动效配置文件中所述第四动效的特征属性不同;或者,所述第一应用的动效模型参数表中第四动效的特征属性对应的值,与所述动效配置文件中所述第四动效的特征属性对应的值不同。
18.根据权利要求11所述的电子设备,其特征在于,所述电子设备还执行:
在满足预设规则的情况下,修改所述动效配置文件中的第五动效的第二特征属性对应的值。
19.根据权利要求18所述的电子设备,其特征在于,所述预设规则为在预设时间段内,相邻两次用户操作之间的时间间隔小于预设时间的次数超过阈值;
所述修改所述动效配置文件中的第五动效的第二特征属性对应的值,包括:
将所述动效配置文件中第五动效的时长属性对应的值减少,所述第二特征属性包括所述时长属性。
20.根据权利要求18所述的电子设备,其特征在于,所述预设规则为当所述电子设备的当前时间处于第一时间段,所述动效配置文件为第一配置;
当所述电子设备的当前时间处于第二时间段,所述动效配置文件为第二配置;其中,所述第一配置中第五动效的时长属性对应的值比所述第二配置中所述第五动效的时长属性对应的值小;所述第二特征属性包括所述时长属性。
21.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-10中任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011639675.2A CN114690975B (zh) | 2020-12-31 | 2020-12-31 | 一种动效处理方法及相关装置 |
CN202410502928.3A CN118484108A (zh) | 2020-12-31 | 2020-12-31 | 一种动效处理方法及相关装置 |
EP21914073.8A EP4246294A4 (en) | 2020-12-31 | 2021-12-22 | METHOD FOR PROCESSING DYNAMIC EFFECTS AND ASSOCIATED DEVICE |
PCT/CN2021/140434 WO2022143335A1 (zh) | 2020-12-31 | 2021-12-22 | 一种动效处理方法及相关装置 |
US18/344,247 US20230351665A1 (en) | 2020-12-31 | 2023-06-29 | Animation Processing Method and Related Apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011639675.2A CN114690975B (zh) | 2020-12-31 | 2020-12-31 | 一种动效处理方法及相关装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410502928.3A Division CN118484108A (zh) | 2020-12-31 | 2020-12-31 | 一种动效处理方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114690975A CN114690975A (zh) | 2022-07-01 |
CN114690975B true CN114690975B (zh) | 2024-05-03 |
Family
ID=82136224
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410502928.3A Pending CN118484108A (zh) | 2020-12-31 | 2020-12-31 | 一种动效处理方法及相关装置 |
CN202011639675.2A Active CN114690975B (zh) | 2020-12-31 | 2020-12-31 | 一种动效处理方法及相关装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410502928.3A Pending CN118484108A (zh) | 2020-12-31 | 2020-12-31 | 一种动效处理方法及相关装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230351665A1 (zh) |
EP (1) | EP4246294A4 (zh) |
CN (2) | CN118484108A (zh) |
WO (1) | WO2022143335A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240112389A1 (en) * | 2022-09-30 | 2024-04-04 | Microsoft Technology Licensing, Llc | Intentional virtual user expressiveness |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109147016A (zh) * | 2018-07-26 | 2019-01-04 | 乐蜜有限公司 | 一种动效画面生成方法、装置、电子设备及存储介质 |
CN109242934A (zh) * | 2017-07-06 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 一种动画代码的生成方法及设备 |
CN111553967A (zh) * | 2020-04-26 | 2020-08-18 | 苏州沁游网络科技有限公司 | 一种基于Unity的动画资源文件制作方法、模块及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7872652B2 (en) * | 2007-01-07 | 2011-01-18 | Apple Inc. | Application programming interfaces for synchronization |
US20120021828A1 (en) * | 2010-02-24 | 2012-01-26 | Valve Corporation | Graphical user interface for modification of animation data using preset animation samples |
US10210645B2 (en) * | 2015-06-07 | 2019-02-19 | Apple Inc. | Entity agnostic animation tool |
CN111046198B (zh) * | 2019-11-29 | 2022-03-29 | 腾讯科技(深圳)有限公司 | 一种信息处理方法、装置、设备及存储介质 |
-
2020
- 2020-12-31 CN CN202410502928.3A patent/CN118484108A/zh active Pending
- 2020-12-31 CN CN202011639675.2A patent/CN114690975B/zh active Active
-
2021
- 2021-12-22 WO PCT/CN2021/140434 patent/WO2022143335A1/zh unknown
- 2021-12-22 EP EP21914073.8A patent/EP4246294A4/en active Pending
-
2023
- 2023-06-29 US US18/344,247 patent/US20230351665A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109242934A (zh) * | 2017-07-06 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 一种动画代码的生成方法及设备 |
CN109147016A (zh) * | 2018-07-26 | 2019-01-04 | 乐蜜有限公司 | 一种动效画面生成方法、装置、电子设备及存储介质 |
CN111553967A (zh) * | 2020-04-26 | 2020-08-18 | 苏州沁游网络科技有限公司 | 一种基于Unity的动画资源文件制作方法、模块及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP4246294A4 (en) | 2024-05-01 |
CN118484108A (zh) | 2024-08-13 |
EP4246294A1 (en) | 2023-09-20 |
CN114690975A (zh) | 2022-07-01 |
US20230351665A1 (en) | 2023-11-02 |
WO2022143335A1 (zh) | 2022-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020221063A1 (zh) | 切换父页面和子页面的方法、相关装置 | |
CN113630572B (zh) | 帧率切换方法和相关装置 | |
US20240232511A1 (en) | Adaptive Card Generation Method, Terminal Device, and Server | |
CN113132526B (zh) | 一种页面绘制方法及相关装置 | |
CN113553130B (zh) | 应用执行绘制操作的方法及电子设备 | |
CN116048933B (zh) | 一种流畅度检测方法 | |
WO2022206681A1 (zh) | 一种窗口的显示方法以及相关装置 | |
US20230351665A1 (en) | Animation Processing Method and Related Apparatus | |
WO2023066177A1 (zh) | 动画效果显示方法及电子设备 | |
WO2023066165A1 (zh) | 动画效果显示方法及电子设备 | |
CN115933952B (zh) | 一种触控采样率调节方法及相关装置 | |
CN115562535A (zh) | 应用控制方法和电子设备 | |
CN117806745B (zh) | 界面生成方法及电子设备 | |
WO2024027570A1 (zh) | 界面显示方法及相关装置 | |
WO2024046010A1 (zh) | 一种界面显示方法、设备及系统 | |
CN117764853B (zh) | 人脸图像增强方法和电子设备 | |
WO2024060968A1 (zh) | 管理服务卡片的方法和电子设备 | |
CN118071893A (zh) | 一种图形界面处理方法以及装置 | |
CN117827300A (zh) | 显示方法、图形界面及相关装置 | |
CN118276716A (zh) | 窗口管理的方法和电子设备 | |
CN117666888A (zh) | 人机交互方法、电子设备及计算机可读存储介质 | |
CN117909000A (zh) | 界面生成方法及电子设备 | |
CN117009099A (zh) | 消息处理方法和电子设备 | |
CN118445006A (zh) | 界面显示方法及相关设备 | |
CN117806745A (zh) | 界面生成方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |