首页> 中国专利> 一种字符动画编辑方法、装置、电子设备及存储介质

一种字符动画编辑方法、装置、电子设备及存储介质

摘要

本发明提供了一种字符动画编辑方法、装置、电子设备及存储介质,其中字符动画编辑方法包括:获取原始字符串;将原始字符串进行拆分确定独立字符;根据各个独立字符确定各个独立字符之间的关联关系,关联关系为各个独立字符的前后对应关系;基于关联关系对各个独立字符进行组合,对组合后的独立字符进行动画编辑。本发明通过将原始字符串进行拆分,然后利用关联关系将拆分后的独立字符进行重组,利用化整为零的思想解决原生动画无法实现的独立字符的动画操作问题,避免频繁创建对象造成的内存抖动,并且保证了拆分重组后的字符与原始字符串之间无割裂感,进一步保证了操作的连贯性及稳定性,从而提高了系统的整体性能。

著录项

  • 公开/公告号CN113011130A

    专利类型发明专利

  • 公开/公告日2021-06-22

    原文格式PDF

  • 申请/专利权人 安徽文香科技有限公司;

    申请/专利号CN202110194259.4

  • 发明设计人 朱玉荣;娄丽珠;王志伟;

    申请日2021-02-20

  • 分类号G06F40/109(20200101);G06T11/60(20060101);G06T13/80(20110101);

  • 代理机构11250 北京三聚阳光知识产权代理有限公司;

  • 代理人张琳琳

  • 地址 247100 安徽省池州市江南产业集中区科技孵化园C2厂房

  • 入库时间 2023-06-19 11:32:36

说明书

技术领域

本发明涉及文本动画设置技术领域,具体涉及一种字符动画编辑方法、装置、电子设备及存储介质。

背景技术

Android系统是一种基于Linux内核的自由及开放源代码的操作系统,Android系统的原生动画主要有:位移动画、旋转动画、缩放动画、透明度变化动画,现有技术中原生动画是实现一整串字符串的整体动画编辑,就是整个原始字符串的动画添加,然而在开发过程中往往需要对重点对象进行突出标记,因此如何实现整体字符串中的某一部分的动画编辑是具有重要意义的。

发明内容

有鉴于此,本发明实施例提供了一种字符动画编辑方法、装置、电子设备及存储介质,解决现有技术中不能实现整体字符串中的独立字符的动画操作问题。

根据第一方面,本发明实施例提供了一种字符动画编辑方法,所述方法包括:

获取原始字符串;

将所述原始字符串进行拆分确定独立字符;

根据各个独立字符确定各个独立字符之间的关联关系,其中,所述关联关系为各个独立字符的前后对应关系;

基于所述关联关系对各个独立字符进行组合,对组合后的独立字符进行动画编辑。

本发明实施例提供的字符动画编辑方法,通过将原始字符串进行拆分,然后利用关联关系将拆分后的独立字符进行重组,利用化整为零的思想解决原生动画无法实现的针对独立字符的动画操作问题,避免频繁创建对象造成的内存抖动,并且保证了拆分重组后的字符与原始字符串之间无割裂感,进一步保证了操作的连贯性及稳定性,从而提高了系统的整体性能。

结合第一方面,在第一方面第一实施方式中,所述将原始字符串进行拆分确定独立字符,包括:

获取目标子文本框;

将拆分后的各个独立字符分别存储于对应的目标子文本框中,以便于对各个独立字符进行动画编辑。

本发明实施例提供的字符动画编辑方法,针对于Android系统原生动画的操作对象,将拆分后的独立字符存储至对应的目标子文本框中,以便于对各个独立字符进行动画编辑,保证了动画编辑的准确性。

结合第一方面第一实施方式,在第一方面第二实施方式中,所述获取目标子文本框,包括:

获取存储原始字符串的文本框的字体属性;

创建子文本框,将所述字体属性设置到所述子文本框中,以确定目标子文本框。

本发明实施例提供的字符动画编辑方法,将原始字符串对应的文本框的字体属性设置到新创建的子文本框中,保证拼接后的操作对象与原始操作对象能够完全一致,使得最后动画编辑没有割裂感,保证了动画的连贯性。

结合第一方面第二实施方式,在第一方面第三实施方式中,在所述创建子文本框之前,所述字符动画编辑方法还包括:

获取缓存容器中的各个复用子文本框,所述复用子文本框为完成动画编辑后存放至所述缓存容器的子文本框;

将所述复用子文本框进行初始化,以得到所述子文本框。

本发明实施例提供的字符动画编辑方法,将已经完成动画编辑的操作对象,即子文本框存储至缓存容器中,便于后续进行动画编辑过程中可以直接复用已有的子文本框,无需一致新建子文本框,保证了系统内存的有效利用,并且有效避免频繁创建对象导致的内存抖动的现象。

结合第一方面第一实施方式,在第一方面第四实施方式中,所述基于所述关联关系对各个独立字符进行组合,对组合后的独立字符进行动画编辑,包括:

创建视图容器,按照所述关联关系将各个所述目标子文本框存放至所述视图容器中;

接收编辑指令,根据所述编辑指令对所述视图容器中的目标子文本框进行动画编辑。

本发明实施例提供的字符动画编辑方法,通过视图容器将各个拆分得到的后目标子文本框依次进行存储,进而实现对各个独立字符的重组过程。

结合第一方面第四实施方式,在第一方面第五实施方式中,当所述编辑指令为所有目标子文本框动画编辑指令时,所述根据所述编辑指令对所述视图容器中的目标子文本框进行动画编辑,包括:按照所述关联关系依次为所述视图容器中的目标子文本框进行动画编辑,直到监听到最后一个目标子文本框完成动画编辑。

本发明实施例提供的字符动画编辑方法,通过递归思想实现链式动画效果,保证每个目标子文本框中的独立字符的动画编辑。

结合第一方面第五实施方式,在第一方面第六实施方式中,在监听到最后一个目标子文本框完成动画编辑之后,所述方法还包括:

判断所述编辑指令是否为循环指令;

当所述编辑指令为循环指令时,返回按照所述关联关系依次为所述视图容器中的目标子文本框进行动画编辑的步骤,直到监听到所述循环指令结束。

结合第一方面第四实施方式,在第一方面第七实施方式中,当所述编辑指令为指定目标子文本框动画编辑指令时,所述编辑指令携带子文本框标识信息,所述根据所述编辑指令对所述视图容器中的子文本框进行动画编辑,包括:

利用所述子文本框标识信息确定所述视图容器中的当前子文本框;

获取当前子文本框,为所述当前子文本框添加动画。

本发明实施例提供的字符动画编辑方法,通过编辑指令中携带的子文本框标识信息,确定需要编辑的子文本框,进而实现对指定文本框的动画编辑。

根据第二方面,本发明实施例还提供了一种字符动画编辑装置,所述编辑装置包括:

第一获取模块,用于获取原始字符串;

第一处理模块,用于将所述原始字符串进行拆分确定独立字符;

第二处理模块,用于根据各个独立字符确定各个独立字符之间的关联关系,其中,所述关联关系为各个独立字符相应的前后对应关系;

第三处理模块,用于基于所述关联关系对各个独立字符进行组合,对组合后的独立字符进行动画编辑。

结合第二方面,在第二方面第一实施方式中,所述第一处理模块,包括:

获取子模块,用于获取目标子文本框;

存储模块,用于将拆分后的各个独立字符分别存储于对应的目标子文本框中,以便于对各个独立字符进行动画编辑。

结合第二方面第一实施方式,在第二方面第二实施方式中,所述获取子模块,包括:

第一获取子模块,用于获取存储原始字符串的文本框的字体属性;

设置模块,用于创建子文本框,将所述字体属性设置到所述子文本框中,以确定目标子文本框。

结合第二方面第二实施方式,在第二方面第三实施方式中,所述字符动画编辑装置还包括:

第二获取子模块,用于获取缓存容器中的各个复用子文本框,所述复用子文本框为完成动画编辑后存放至所述缓存容器的子文本框;

初始化模块,用于将所述复用子文本框进行初始化,以得到所述子文本框。

结合第二方面第一实施方式,在第二方面第四实施方式中,所述第三处理模块,包括:

组合模块,用于创建视图容器,按照所述关联关系将各个所述目标子文本框存放至所述视图容器中;

编辑模块,用于接收编辑指令,根据所述编辑指令对所述视图容器中的目标子文本框进行动画编辑。

结合第二方面第四实施方式,在第二方面第五实施方式中,当所述编辑指令为所有目标子文本框动画编辑指令时,所述编辑模块,包括:

第一编辑模块,用于按照所述关联关系依次为所述视图容器中的目标子文本框进行动画编辑,直到监听到最后一个目标子文本框完成动画编辑。

结合第二方面第五实施方式,在第二方面第六实施方式中,所述字符动画编辑装置还包括:

判断模块,用于判断所述编辑指令是否为循环指令,当所述编辑指令为循环指令时;

监听模块,用于返回按照所述关联关系依次为所述视图容器中的目标子文本框进行动画编辑的步骤,直到监听到所述循环指令结束。

结合第二方面第四实施方式,在第二方面第七实施方式中,当所述编辑指令为指定目标子文本框动画编辑指令时,所述编辑模块,包括:

选择模块,用于利用所述子文本框标识信息确定所述视图容器中的当前子文本框;

第二编辑模块,用于获取当前子文本框,为所述当前子文本框添加动画。

根据第三方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式中所述的字符动画编辑方法。

根据第四方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中所述的字符动画编辑方法。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的字符动画编辑方法的流程图;

图2是根据本发明实施例的字符动画编辑方法的另一流程图;

图3是根据本发明实施例的字符动画编辑方法的另一具体流程图;

图4是根据本发明实施例的字符动画编辑方法对应的单个字符逐个抖动的流程图;

图5是根据本发明实施例的单个字符逐个抖动的示意图;

图6是根据本发明实施例的字符动画编辑装置的结构框图;

图7是本发明实施例提供的电子设备的硬件结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,本发明实施例中的电子设备可以是电子白板,也可以是智能交互设备,例如,手机、平板等等,在此对其并不做任何限制。

根据本发明实施例,提供了一种字符动画编辑方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在本实施例中提供了一种字符动画编辑方法,可用于上述的电子设备,图1是根据本发明实施例的字符动画编辑方法的流程图,如图1所示,该流程包括如下步骤:

S11,获取原始字符串。

在原有动画系统中,对于动画的设置是针对一个整体字符串,本实施例中首先获取整体的原始字符串,其中原始字符串可以是电子设备直接从外界获取到的,也可以是利用电子设备中的数据采集装置采集得到的原始字符串,在此对电子设备获取原始字符串的方式并不做任何限制,只需保证电子设备能够获取到待质检数据即可。

S12,将原始字符串进行拆分确定独立字符。

为了解决原有动画只能对字符串整体进行动画设置,将原始字符串进行拆分,拆分后的各个独立字符能够作为动画设置的操作对象,确定独立字符。其中对于原始字符串拆分后的独立字符的字符个数可以根据具体的显示要求进行设置,可以是一个独立的字符,操作单位是一个字符,也可以是多个字符组成的小于原始字符串字符个数的独立字符。

S13,根据各个独立字符确定各个独立字符之间的关联关系,其中,关联关系为各个独立字符相应的前后对应关系。

在原始字符串的拆分过程中各个独立字符之间的前后关联关系即可确定,例如当原始字符串为ABCDE时,需要拆分为单个独立字符,并且拆分出字符A后,其后续的字符即为B,已知单个字符B后,即可知道其前边一个字符为A,后边一个字符为C。需要说明的是,本实施例仅以上述字符串为例进行说明,本实施例并不以此为限,具体可以根据实际情况进行相应的设置。

S14,基于关联关系对各个独立字符进行组合,对组合后的独立字符进行动画编辑。

基于拆分后的各个独立字符之间的关联关系,对各个独立字符进行组合,保证重新组合的字符与原始字符串一致,然后对组合后的独立字符进行相应的动画编辑,因为上述拆分过程中保证了拆分后的独立字符可以作为动画编辑的操作对象,所以可以实现整体字符串中的某一部分的突出显示与设置。

例如,针对于Android系统而言,Android系统的原生动画主要有:位移动画、旋转动画、缩放动画、透明度变化动画,原生动画是实现一整串字符串的整体动画编辑,为了对字符串中某些部分的字符进行缩放动画设置,则将其进行拆分,还以上述ABCDE字符串为例,为了突出显示E字符,则将E字符单独拆分为一个独立字符,就可以为此独立字符进行缩放动画设置。需要说明的是,本实施例仅举例说明原生动画的种类,在实际应用中可以根据实际需要进行动画的选择与设置,本实施例并不以此为限。

本实施例提供的字符动画编辑方法,通过将原始字符串进行拆分,然后利用关联关系将拆分后的独立字符进行重组,利用化整为零的思想解决原生动画无法实现的针对独立字符的动画操作问题,避免频繁创建对象造成的内存抖动,并且保证了拆分重组后的字符与原始字符串之间没有割裂感,进一步保证了操作的连贯性及稳定性,从而提高了系统的整体性能。

在本实施例中提供了一种字符动画编辑方法,可用于上述的电子设备,图2是根据本发明实施例的字符动画编辑方法的流程图,如图2所示,该流程包括如下步骤:

S21,获取原始字符串。

本实施例以Android系统为例进行说明,当操作系统为Android系统时,其动画编辑操作的最小单位是TextView(文本框,一个显示字符串的载体),一般一个TextView用来显示一串字符,则可以直接通过读取TextView的内容获取原始字符串。

其中具体的获取过程详细请参见图1所示实施例的S11,在此不再赘述。

S22,将原始字符串进行拆分确定独立字符。

具体地,上述S22可以包括如下步骤:

S221,获取目标子文本框。

其中针对于Android系统动画编辑操作的最小单位(TextView),其中TextView是系统中的一个控件,用于显示文本的一个控件,获取一个目标子文本框,用于存储拆分后需要添加动画的独立字符。本实施例中获取目标子文本框可以是以编程的方式创建一个TextView,以保证对拆分后的独立字符进行动画设置。需要说明的是,获取目标子文本框还可以通过直接调用已经创建并空闲的子文本框,本实施例仅以此为例,并不以此为限。

在本实施例的一些可选实施方式中,上述S221可以包括如下步骤:

(1)获取存储原始字符串的文本框的字体属性。

确定存储原始字符串的文本框(原TextView)的字体、字体大小、颜色等字体属性。还可以包括其他属性,只要能保证将原始字符串的特征全部提取到即可。

(2)获取缓存容器中的各个复用子文本框,复用子文本框为完成动画编辑后存放至缓存容器的子文本框。

本实施例中,当完成一次拆分并添加动画后,会将此过程中新创建的各个子文本框存储到一个缓存容器中,当下一次进行新的字符串拆分过程中,可以直接复用各个存储在缓存容器中的复用子文本框。其中,缓存容器可以选择LRUCache,LRU缓存利用了LRU算法的思想,LRU是Least Recently Used的缩写,就是“最近最少使用”,也就是说,LRU缓存把最近最少使用的数据移除,让给最新读取的数据,保证内存的释放。而往往最常读取的,也是读取次数最多的,所以利用LRU缓存,能够提高系统的整体性能。

(3)将复用子文本框进行初始化,以得到子文本框。

在复用子文本框的过程中,可以首先判断一下需要存储的拆分后的独立字符是否与当前复用子文本框中存储的字符一致,如果一致则可以直接复用此复用子文本框添加其余原始字符串中其他字符的关联关系即可。如果拆分后的独立字符与当前复用子文本框中存储的字符不一致,则将复用子文本框进行初始化,就是将复用子文本框中的内容进行清空,以得到子文本框。

(4)创建子文本框,将字体属性设置到子文本框中,以确定目标子文本框。

基于复用的子文本框或者创建的子文本框,将上述过程中获取到的存储原始字符串的文本框(原TextView)的字体、字体大小、颜色等字体属性,设置到子文本框中上。以保证在拼接多个TextView的时候,使得拼接的TextView组能够和原TextView完全一样。

S222,将拆分后的各个独立字符分别存储于对应的目标子文本框中,以便于对各个独立字符进行动画编辑。

分别将拆分后的每个独立字符存储到其对应的目标子文本框中,保证后续对各个独立字符的动画设置过程中对操作对象的可操作性。

其中,确定各个独立字符之间的关联关系的过程详细请参见图1所示实施例的S12,在此不再赘述。

S23,根据各个独立字符确定各个独立字符之间的关联关系,其中,关联关系为各个独立字符相应的前后对应关系。

详细请参见图1所示实施例的S13,在此不再赘述。

S24,基于关联关系对各个独立字符进行组合,对组合后的独立字符进行动画编辑。

详细请参见图1所示实施例的S14,在此不再赘述。

本实施例提供的字符动画编辑方法,针对于Android系统原生动画的操作对象,将拆分后的独立字符存储至对应的目标子文本框中,以便于对各个独立字符进行动画编辑,保证了动画编辑的准确性;将原始字符串对应的文本框的字体属性设置到新创建的子文本框中,保证拼接后的操作对象与原始操作对象能够完全一致,使得最后动画编辑没有割裂感,保证了动画的连贯性;将已经完成动画编辑的操作对象,即子文本框存储至缓存容器中,便于后续进行动画编辑过程中可以直接复用已有的子文本框,无需一致新建子文本框,保证了系统内存的有效利用和系统的稳定性,并且有效避免频繁创建对象导致的内存抖动的现象。

在本实施例中提供了一种字符动画编辑方法,可用于上述的电子设备,图3是根据本发明实施例的字符动画编辑方法的流程图,如图3所示,该流程包括如下步骤:

S31,获取原始字符串。

详细请参见图2所示实施例的S21,在此不再赘述。

S32,将原始字符串进行拆分确定独立字符。

其中,当独立字符为单个字符时,可以通过对原始字符串设置for循环,for(int i=0;i

其余详细请参见图2所示实施例的S22,在此不再赘述。

S33,根据各个独立字符确定各个独立字符之间的关联关系,其中,所述关联关系为各个独立字符相应的前后对应关系。

详细请参见图2所示实施例的S23,在此不再赘述。

S34,基于关联关系对各个独立字符进行组合,对组合后的独立字符进行动画编辑。

在本实施例中,对于上述拆分的各个子文本框(TextView)进行组合,因为每个子文本框都有其对应的编号来确定其与其他子文本框的关联关系,可以将拼接后的TextView组看做是一个横向链式TextView,然后对组合后的每个单独的TextView看做一个动画操作对象进行动画编辑。

具体地,上述S34可以包括如下步骤:

S341,创建视图容器,按照关联关系将各个目标子文本框存放至视图容器中。

其中在获取目标子文本框后,可以将其添加到创建的视图容器中,每次提取的一个目标子文本框则放入其中,在视图容器中形成各个目标子文本框的独立字符之间的关联关系,还可以是将所有独立字符拆分存储至对应的目标子文本框后,根据关联关系将各个目标子文本框分别存储至视图容器中。并且设置视图容器的显示的内容为提取的各个独立字符。

S342,接收编辑指令,根据编辑指令对视图容器中的目标子文本框进行动画编辑。

组合各个目标子文本框之后,可以对任意目标子文本框进行动画编辑;当有编辑指令后,则可以根据编辑指令对视图容器中的目标子文本框进行动画编辑,具体的编辑过程在下文进行详细阐述。

在本实施例的一些可选实施方式中,当编辑指令为所有目标子文本框动画编辑指令时,上述S342可以包括如下步骤:

(1)按照关联关系依次为视图容器中的目标子文本框进行动画编辑,直到监听到最后一个目标子文本框完成动画编辑。

本实施例中,如果是需要对视图容器中的所有的目标子文本框进行动画编辑,则需要根据关联关系依次为各个目标子文本框进行动画编辑,为动画编辑设置动画监听,每当一个对象(目标子文本框)动画操作完成后,则将指针按照关联关系将指针指向下一个目标子文本框,利用递归执行下一个对象的动画,直到监听到最后一个目标子文本框完成动画编辑。

(2)判断编辑指令是否为循环指令。

当完成一次所有目标子文本框的动画编辑后,判断编辑指令是否为循环指令。

(3)当编辑指令为循环指令时,返回按照关联关系依次为视图容器中的目标子文本框进行动画编辑的步骤,直到监听到循环指令结束。

当编辑指令为循环指令时,则表示当前需要循环播放动画,则将指针数值重新设置为零,指针指向视图容器中的第一个TextView,直到监听到循环指令结束。

在本实施例的一些可选实施方式中,当编辑指令为指定目标子文本框动画编辑指令时,编辑指令携带子文本框标识信息,上述S342可以包括如下步骤:

S3421,利用子文本框标识信息确定视图容器中的当前子文本框。

当编辑指令为指定目标子文本框动画编辑指令时,也就是仅需要某些目标子文本框进行动画编辑,并且编辑指令中携带子文本框标识信息,利用子文本框标识信息确定视图容器中的需要编辑的当前子文本框。

S3422,获取当前子文本框,为当前子文本框添加动画。

获取需要编辑的子文本框,并利用现有的动画添加方式为当前子文本框添加动画。

本实施例提供的字符动画编辑方法,通过视图容器将各个拆分得到的后目标子文本框依次进行存储,进而实现对各个独立字符的重组过程;通过递归思想实现链式动画效果,保证每个目标子文本框中的独立字符的动画编辑;通过编辑指令中携带的子文本框标识信息,确定需要编辑的子文本框,进而实现对指定文本框的动画编辑。

在本实施例中提供了一种字符动画编辑方法,以实现Android系统的单个字符跳动为例,可用于上述的电子设备,如图4所示,该流程包括如下步骤:

S41:获取原始字符串;

S42:对原始字符串进行循环拆分单个字符,使每个单个字符独自占用一个子文本框(TextView),并对各个子TextView进行组合;

S43:给子TextView添加纵向位移动画;

S44:当动画监听结束时,回收子TextView;

S45:判断最后一个子TextView添加动画是否结束;

S46:当最后一个子TextView添加动画结束时,字符串添加动画结束;当最后一个子TextView添加动画未结束时,返回继续给当前的子TextView添加纵向位移动画,直到最后一个子TextView动画结束。

具体地,上述各个步骤的具体实现过程如下所述:

1.创建父容器及获取原字符串

(1)LinearLayout linearLayout=new LinearLayout(mContext),创建一个新的view容器,用来存放拆分的TextView。

(2)String text=textView.getText().toString(),提取原字符串,例如“愿你所有快乐无需隐藏”。

2.拆分及重组

(1)for(int i=0;i

(2)在循环中,提取字符串的同时,获取一个新的TextView,然后将其添加到容器linearLayout内,设置显示的内容为提取的单个字符s,并且将原TextView的字体、字体大大小、颜色等属性一并设置到新的TextView上。以保证在拼接多个TextView的时候,使得拼接的TextView组能够和原TextView完全一样。

3.为子TextView添加动画

(1)将拼接后的TextView组看做是一个横向链式TextView。

(2)先给第一个TextView添加纵向位移动画,其中纵向位移动画的坐标值范围是0,-50,0这样的位移正好可以实现如图5所示的一次跳动的效果。

ObjectAnimator animator=ObjectAnimator.ofFloat(linearLayout.getChildAt(textIndex),"translationY",0,-50,0);

animator.setDuration(300);

animator.start();

4.动画监听

(1)animator.addListener,给添加动画结束监听,每当一个字符跳动结束时,textIndex++,指针指向下一个字符。

(2)利用递归执行下一个字符的动画。

(3)当最后一个字符动画完成时,如果需要循环播放动画,则将textIndex=0,指针指向头TextView。

5.动画停止及TextView复用

(1)动画停止:最后一个字符动画完成时,结束递归。

(2)TextView复用:利用LruCache回收TextView,其中LruCache是一个容器,用来存放textview。在2.(2)中提到的获取新的TextView,就是从LruCache中get得到,这样做可以有效避免频繁创建对象导致的内存抖动。

在本实施例中还提供了一种字符动画编辑装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本实施例提供一种字符动画编辑装置,如图6所示,包括:

第一获取模块51,用于获取原始字符串;

第一处理模块52,用于将原始字符串进行拆分确定独立字符;

第二处理模块53,用于根据各个独立字符确定各个独立字符之间的关联关系,其中,所述关联关系为各个独立字符相应的前后对应关系;

第三处理模块54,用于基于关联关系对各个独立字符进行组合,对组合后的独立字符进行动画编辑。

在本实施例的一些可选实施方式中,第一处理模块,包括:

获取子模块,用于获取目标子文本框;

存储模块,用于将拆分后的各个独立字符分别存储于对应的目标子文本框中,以便于对各个独立字符进行动画编辑。

可选地,获取子模块,包括:

第一获取子模块,用于获取存储原始字符串的文本框的字体属性;

设置模块,用于创建子文本框,将字体属性设置到子文本框中,以确定目标子文本框。

可选地,字符动画编辑装置还包括:

第二获取子模块,用于获取缓存容器中的各个复用子文本框,复用子文本框为完成动画编辑后存放至缓存容器的子文本框;

初始化模块,用于将复用子文本框进行初始化,以得到子文本框。

可选地,第三处理模块,包括:

组合模块,用于创建视图容器,按照关联关系将各个目标子文本框存放至视图容器中;

编辑模块,用于接收编辑指令,根据编辑指令对视图容器中的目标子文本框进行动画编辑。

可选地,当编辑指令为所有目标子文本框动画编辑指令时,编辑模块,包括:

第一编辑模块,用于按照关联关系依次为视图容器中的目标子文本框进行动画编辑,直到监听到最后一个目标子文本框完成动画编辑。

可选地,字符动画编辑装置还包括:

判断模块,用于判断编辑指令是否为循环指令,当编辑指令为循环指令时;

监听模块,用于返回按照关联关系依次为视图容器中的目标子文本框进行动画编辑的步骤,直到监听到循环指令结束。

可选地,当编辑指令为指定目标子文本框动画编辑指令时,编辑模块,包括:

选择模块,用于利用子文本框标识信息确定视图容器中的当前子文本框;

第二编辑模块,用于获取当前子文本框,为当前子文本框添加动画。

本实施例中的字符动画编辑装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。

上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。

本发明实施例还提供一种电子设备,具有上述图6所示的字符动画编辑装置。

请参阅图7,图7是本发明可选实施例提供的一种电子设备的结构示意图,如图7所示,该电子设备可以包括:至少一个处理器61,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口63,存储器64,至少一个通信总线62。其中,通信总线62用于实现这些组件之间的连接通信。其中,通信接口63可以包括显示屏(Display)、键盘(Keyboard),可选通信接口63还可以包括标准的有线接口、无线接口。存储器64可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器64可选的还可以是至少一个位于远离前述处理器61的存储装置。其中处理器61可以结合图6所描述的装置,存储器64中存储应用程序,且处理器61调用存储器64中存储的程序代码,以用于执行上述任一方法步骤。

其中,通信总线62可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线62可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器64可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器64还可以包括上述种类的存储器的组合。

其中,处理器61可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。

其中,处理器61还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。

可选地,存储器64还用于存储程序指令。处理器61可以调用程序指令,实现如本申请图1至4实施例中所示的字符动画编辑方法。

本发明实施例还提供了一种非暂态计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的字符动画编辑方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号