一种背景生成方法、装置、电子设备及存储介质

文档序号:189905 发布日期:2021-11-02 浏览:28次 >En<

阅读说明:本技术 一种背景生成方法、装置、电子设备及存储介质 (Background generation method and device, electronic equipment and storage medium ) 是由 田守明 于 2021-08-03 设计创作,主要内容包括:本申请提供一种背景生成方法、装置、电子设备及存储介质,该方法包括:获取待生成背景的属性信息;根据待生成背景的属性信息,从缓存类中提取目标背景实例;调用目标背景实例,以得到待生成背景。上述方案提供的方法,通过根据属性信息定位目标背景实例,可以快速提取目标背景实例,提高了背景生成效率。(The application provides a background generation method, a background generation device, an electronic device and a storage medium, wherein the method comprises the following steps: acquiring attribute information of a background to be generated; extracting a target background example from the cache class according to the attribute information of the background to be generated; and calling the target background example to obtain the background to be generated. According to the method provided by the scheme, the target background instance can be quickly extracted by positioning the target background instance according to the attribute information, and the background generation efficiency is improved.)

一种背景生成方法、装置、电子设备及存储介质

技术领域

本申请涉及数据处理技术领域,尤其涉及一种背景生成方法、装置、电子设备及存储介质。

背景技术

目前的安卓开发离不开背景开发,在背景开发过程中,每开发一个不同种效果的背景就需要编写一个drawable.xml文件。

在现有技术中,当开发人员需要复用drawable.xml文件时,通常根据文件名称,从存储器中查找并提取对应的目标文件。

但是,由于系统中文件众多,为了避免文件名称重复等问题,文件名称一般较为复杂,若基于现有技术得到目标文件,将降低背景生成效率。

发明内容

本申请提供一种背景生成方法、装置、电子设备及存储介质,以解决现有技术的背景生成效率低等缺陷。

本申请第一个方面提供一种背景生成方法,包括:

获取待生成背景的属性信息;

根据所述待生成背景的属性信息,从缓存类中提取目标背景实例;

调用所述目标背景实例,以得到所述待生成背景。

可选的,所述根据所述待生成背景的属性信息,从缓存类中提取目标背景实例,包括:

获取所述缓存类;

判断所述缓存类是否有与所述待生成背景的属性信息相对应的背景实例;

当缓存类有与所述待生成背景的属性信息相对应的背景实例时,将与所述待生成背景的属性信息相对应的背景实例,确定为所述目标背景实例。

可选的,还包括:

当所述缓存类没有与所述待生成背景的属性信息相对应的背景实例时,根据所述待生成背景的属性信息,生成所述待生成背景。

可选的,所述根据所述待生成背景的属性信息,生成所述待生成背景,包括:

根据所述待生成背景的属性信息,判断所述待生成背景是否为多图层;

若是,则利用预设的多图层背景生成类,按照所述属性信息,生成所述待生成背景;

否则,利用预设的单图层背景生成类,按照所述属性信息,生成所述待生成背景。

可选的,在根据所述待生成背景的属性信息,生成所述待生成背景之后,所述方法还包括:

按照预设的缓存规则,将所生成的待生成背景以弱引用的形式缓存到缓存类。

可选的,所述获取待生成背景的属性信息,包括:

获取待生成背景的设计图;

根据所述待生成背景的设计图,解析所述待生成背景的属性信息。

可选的,在获取待生成背景的属性信息之后,所述方法还包括:

判断所述待生成背景的属性信息是否有效;

若是,则执行所述根据所述待生成背景的属性信息,从缓存类中提取目标背景实例的步骤;

否则,返回到所述获取待生成背景的属性信息的步骤。

本申请第二个方面提供一种背景生成装置,包括:

获取模块,用于获取待生成背景的属性信息;

提取模块,用于根据所述待生成背景的属性信息,从缓存类中提取目标背景实例;

生成模块,用于调用所述目标背景实例,以得到所述待生成背景。

可选的,所述提取模块,具体用于:

获取所述缓存类;

判断所述缓存类是否有与所述待生成背景的属性信息相对应的背景实例;

当缓存类有与所述待生成背景的属性信息相对应的背景实例时,将与所述待生成背景的属性信息相对应的背景实例,确定为所述目标背景实例。

可选的,所述装置还包括:

自生成模块,用于当所述缓存类没有与所述待生成背景的属性信息相对应的背景实例时,根据所述待生成背景的属性信息,生成所述待生成背景。

可选的,所述自生成模块,具体用于:

根据所述待生成背景的属性信息,判断所述待生成背景是否为多图层;

若是,则利用预设的多图层背景生成类,按照所述属性信息,生成所述待生成背景;

否则,利用预设的单图层背景生成类,按照所述属性信息,生成所述待生成背景。

可选的,所述装置还包括:

缓存模块,用于按照预设的缓存规则,将所生成的待生成背景以弱引用的形式缓存到缓存类。

可选的,所述获取模块,具体用于:

获取待生成背景的设计图;

根据所述待生成背景的设计图,解析所述待生成背景的属性信息。

可选的,所述获取模块,还用于:

判断所述待生成背景的属性信息是否有效;

若是,则执行所述根据所述待生成背景的属性信息,从缓存类中提取目标背景实例的步骤;

否则,返回到所述获取待生成背景的属性信息的步骤。

本申请第三个方面提供一种电子设备,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一个方面以及第一个方面各种可能的设计所述的方法。

本申请第四个方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一个方面以及第一个方面各种可能的设计所述的方法。

本申请技术方案,具有如下优点:

本申请提供一种背景生成方法、装置、电子设备及存储介质,该方法包括:获取待生成背景的属性信息;根据待生成背景的属性信息,从缓存类中提取目标背景实例;调用目标背景实例,以得到待生成背景。上述方案提供的方法,通过根据属性信息定位目标背景实例,可以快速提取目标背景实例,提高了背景生成效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本申请实施例基于的背景生成系统的结构示意图;

图2为本申请实施例提供的背景生成方法的流程示意图;

图3为本申请实施例提供的示例性的背景生成方法的整体流程示意图;

图4为本申请实施例提供的背景生成装置的结构示意图;

图5为本申请实施例提供的电子设备的结构示意图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

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

此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。

下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明实施例进行描述。

首先,对本申请所基于的背景生成系统的结构进行说明:

本申请实施例提供的背景生成方法、装置、电子设备及存储介质,适用于安卓、ios等应用系统下的软件开发。如图1所示,为本申请实施例基于的背景生成系统的结构示意图,主要包括数据采集装置及用于生成背景的背景生成装置。具体地,由数据采集装置采集待生成背景的属性信息,并将得到的属性信息发送给背景生成装置,背景生成装置根据得到的属性信息,自动完成背景生成工作。

本申请实施例提供了一种背景生成方法,用于生成软件界面中的背景图像。本申请实施例的执行主体为电子设备,比如服务器、台式电脑、笔记本电脑、平板电脑及其他可用于生成背景的电子设备。

如图2所示,为本申请实施例提供的背景生成方法的流程示意图,该方法包括:

步骤201,获取待生成背景的属性信息。

其中,属性信息至少包括背景色、圆角信息和描边信息等。

步骤202,根据待生成背景的属性信息,从缓存类中提取目标背景实例。

需要说明的是,缓存类主要包括在当前时刻之前创建的背景文件。并且,缓存类中的实例是以属性信息为分类标准进行存储的,而无需严格按照文件的命名规则定义实例名称。当需要调用缓存类中的实例时,可以直接根据属性信息定位目标背景实例,而无需输入其文件名称。

具体地,可以根据当前待生成背景的属性信息,从缓存类中查找属性信息相对应的目标背景实例。

步骤203,调用目标背景实例,以得到待生成背景。

具体地,所调用的目标背景实例与待生成背景相同,实现了背景实例的复用。

在上述实施例的基础上,作为一种可实施的方式,在一实施例中,根据待生成背景的属性信息,从缓存类中提取目标背景实例,包括:

步骤2021,获取缓存类;

步骤2022,判断缓存类是否有与待生成背景的属性信息相对应的背景实例;

步骤2023,当缓存类有与待生成背景的属性信息相对应的背景实例时,将与待生成背景的属性信息相对应的背景实例,确定为目标背景实例。

其中,缓存类具体指DrawableCacheHelper。

具体地,可以通过DCL单利模式获取到ZRDrawableCacheHelper的全部背景实例,根据得到的背景实例的具体情况,也就是这些背景实例的属性信息,来判断待生成背景是否存在,若存在,则将对应的背景实例作为目标背景实例,并对其进行调用。

相反地,在一实施例中,当缓存类没有与待生成背景的属性信息相对应的背景实例时,根据待生成背景的属性信息,生成待生成背景。

具体地,在无法实现背景实例复用的情况下,可以通过DrawableCreateFactory工厂模式,根据待生成背景的属性信息,自动生成背景drawable。

具体地,在一实施例中,可以根据待生成背景的属性信息,判断待生成背景是否为多图层;若是,则利用预设的多图层背景生成类,按照属性信息,生成待生成背景;否则,利用预设的单图层背景生成类,按照属性信息,生成待生成背景。

具体地,可以根据待生成背景的属性信息中的背景色的数量,判断待生成背景是多图层还是单图层。

其中,目前所生成的背景通常是XML文件,即drawable.xml,通常由开发人员通过编写代码来创建。在本申请实施例中,为了实现背景的自动生成,可以预先封装代码生成插件,当缓存类没有与待生成背景的属性信息相对应的背景实例时,触发插件的代码自动生成进程,进而实现背景的自动生成。

进一步地,在一实施例中,根据待生成背景的属性信息,生成待生成背景之后,可以按照预设的缓存规则,将所生成的待生成背景以弱引用的形式缓存到缓存类。

具体地,为了可以不断地完善缓存类,可以每生成一个新的背景,都将所生成的背景及对应的属性信息缓存到缓存类,节省了文件命名过程,提高了界面开发速度。并且,本申请实施例对背景实例以弱引用的形式缓存,所占用的内存可以被动态回收,即节省了缓存类的内存。

其中,预设的缓存规则可以是最近最少使用(Least Recently Used,简称:LRU)规则等,具体可以根据实际情况设定存储规则,本申请实施例不做限定。

进一步地,在一实施例中,在所生成的背景返回到背景生成控件DrawableView,为了进一步验证当前背景的有效性,DrawableView将对当前得到的背景进行判空使用。

在上述实施例的基础上,为了避免因属性信息采集异常,而影响背景生成结果,作为一种可实施的方式,在一实施例中,获取待生成背景的属性信息,包括:

步骤2011,获取待生成背景的设计图;

步骤2012,根据待生成背景的设计图,解析待生成背景的属性信息。

具体地,可以利用反射技术,在待生成背景的设计图中解析待生成背景的属性信息。

需要说明的是,目前解析drawable是反射一个drawable系统的文件,这个drawable系统中存在这大量与界面不匹配的属性,整个反射过程是一个浪费性能的过程,而本申请通过采用DrawableView摒弃了大量无关的属性,提高了属性信息的获取效率。

需要进一步说明的是,过多的drawable文件会无形的增加App的包体积,虽然每一个drawable文件都非常小,但是达到一定数量后就不容忽视,而且在某些页面被弃用时,开发人员一般不会将这个drawable文件删除,这就导致drawable文件只会增加,不会减少。而本申请实施例的drawable仅包括生成背景时必要的属性信息,不包括其他无关的属性信息,从而减小了单个drawable文件的体积,为提高drawable文件的加载效率和管理效率奠定了基础。

在上述实施例的基础上,为了进一步保障属性信息的可靠性,作为一种可实施的方式,在一实施例中,在获取待生成背景的属性信息之后,可以判断待生成背景的属性信息是否有效;若是,则执行根据待生成背景的属性信息,从缓存类中提取目标背景实例的步骤;否则,返回到获取待生成背景的属性信息的步骤。

具体地,在得到待生成背景的属性信息之后,可以根据得到的属性信息创建DrawableModel。其中,为了保证内存缓存过程中的属性信息的唯一性,可以利用DrawableModel重写当前属性信息对应的哈希值,以避免因出现哈希值重复,造成背景生成异常。进一步地,可以利用DrawableModel判断待生成背景的属性信息是否有效。

示例性的,若属性信息中的背景色是蓝色,描边色也是蓝色,根据这样的属性信息生成的背景将无法显示描边,此时可以确定当前属性信息无效。相反地,若属性信息中的背景色是蓝色,描边色也是红色,则可以确定当前属性信息有效。

示例性的,如图3所示,为本申请实施例提供的示例性的背景生成方法的整体流程示意图。其中,如图3所示的方法具体是如图2所示的方法的一种示例性的实现方式,二者原理相同,不再赘述。

本申请实施例提供的背景生成方法、装置、电子设备及存储介质,通过获取待生成背景的属性信息;根据待生成背景的属性信息,从缓存类中提取目标背景实例;调用目标背景实例,以得到待生成背景,提高了背景生成效率。并且,可以自动生成缓存类中没有的背景,且在对背景进行缓存时,无需按照命名规则对其进行命名,进一步提高了背景生成效率。

本申请实施例提供了一种背景生成装置,用于执行上述实施例提供的背景生成方法。

如图4所示,为本申请实施例提供的背景生成装置的结构示意图。该背景生成装置40包括:获取模块401、提取模块402和生成模块403。

其中,获取模块,用于获取待生成背景的属性信息;提取模块,用于根据待生成背景的属性信息,从缓存类中提取目标背景实例;生成模块,用于调用目标背景实例,以得到待生成背景。

具体地,在一实施例中,提取模块,具体用于:

获取缓存类;

判断缓存类是否有与待生成背景的属性信息相对应的背景实例;

当缓存类有与待生成背景的属性信息相对应的背景实例时,将与待生成背景的属性信息相对应的背景实例,确定为目标背景实例。

具体地,在一实施例中,装置还包括:

自生成模块,用于当缓存类没有与待生成背景的属性信息相对应的背景实例时,根据待生成背景的属性信息,生成待生成背景。

具体地,在一实施例中,自生成模块,具体用于:

根据待生成背景的属性信息,判断待生成背景是否为多图层;

若是,则利用预设的多图层背景生成类,按照属性信息,生成待生成背景;

否则,利用预设的单图层背景生成类,按照属性信息,生成待生成背景。

具体地,在一实施例中,装置还包括:

缓存模块,用于按照预设的缓存规则,将所生成的待生成背景以弱引用的形式缓存到缓存类。

具体地,在一实施例中,获取模块,具体用于:

获取待生成背景的设计图;

根据待生成背景的设计图,解析待生成背景的属性信息。

具体地,在一实施例中,获取模块,还用于:

判断待生成背景的属性信息是否有效;

若是,则执行根据待生成背景的属性信息,从缓存类中提取目标背景实例的步骤;

否则,返回到获取待生成背景的属性信息的步骤。

关于本实施例中的背景生成装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本申请实施例提供的背景生成装置,用于执行上述实施例提供的背景生成方法,其实现方式与原理相同,不再赘述。

本申请实施例提供了一种电子设备,用于执行上述实施例提供的背景生成方法。

如图5所示,为本申请实施例提供的电子设备的结构示意图。该电子设备50包括:至少一个处理器51和存储器52;

存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上实施例提供的背景生成方法。

本申请实施例提供的一种电子设备,用于执行上述实施例提供的背景生成方法,其实现方式与原理相同,不再赘述。

本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上任一实施例提供的背景生成方法。

本申请实施例的包含计算机可执行指令的存储介质,可用于存储前述实施例中提供的背景生成方法的计算机执行指令,其实现方式与原理相同,不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:WPF界面切换方法、装置、计算机设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!