一种集成多种图片库的方法、存储介质、设备及系统与流程

文档序号:16429844发布日期:2018-12-28 20:03阅读:235来源:国知局
一种集成多种图片库的方法、存储介质、设备及系统与流程

本发明涉及软件开发技术领域,具体来讲是一种集成多种图片库的方法、存储介质、设备及系统。

背景技术

在软件开发的过程中,通常会使用各种图片。目前,市面上有很多开源免费的图片库可以使用。但是,实际使用中可能由于开发需求的变更,又或者是第三方图片库停止维护等原因,使得开发人员不得不对使用的图片库进行切换。

而现有技术中,通常采用硬编码的方式来进行图片库的使用,但硬编码的方式会导致后期图片库的切换十分困难,甚至出现无法切换、变更的情况,进而导致无法在软件中集成多种图片库。而即便是采用其他方式集成了多种图片库,也存在图片库切换操作复杂、效率低以及易引入程序bug(漏洞)的问题。因为,现有的切换方法通常需要将上层软件逻辑层中所有使用了图片库的代码逻辑进行调整,而上层软件逻辑层中又大量使用到了图片库的代码,这样就会导致开发人员每次切换一个图片库的时候就需要调整大量的上层软件的业务代码,代码的入侵性就会大幅度提升,所以非常容易引入程序bug,并且整个切换过程异常复杂且准确率、效率低下。

因此,如何在软件中实现多种图片库的集成并达到任意简便切换的目的,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是为了克服上述背景技术的不足,提供一种集成多种图片库的方法、存储介质、设备及系统,能在软件中实现多种图片库的集成并能够进行图片库的任意切换,切换操作简单、高效且上层无感知,极大的降低了代码的入侵性,避免了程序bug的引入。

为达到以上目的,本发明采取的技术方案是:提供一种集成多种图片库的方法,该方法包括以下步骤:

s1、通过对所有图片库的api进行抽象和归类,建立通用图片库访问接口,所述通用图片库访问接口用于通过调用对应图片库的实现方法来使用相应图片库;且所述通用图片库访问接口的一个实例对应一种图片库;

s2、在视图层增设自定义视图控件,所述自定义视图控件用于继承对应图片库的视图承载容器;

s3、当系统进行初始化时,将指定的某个图片库所对应的通用图片库访问接口的实例作为参数传入到初始化的方法中;并将视图层中的自定义视图控件设置为继承指定的某个图片库的视图承载容器;

s4、当需要进行图片库的切换时,将需要切换的图片库所对应的通用图片库访问接口的实例作为参数重新传入到初始化的方法中;并将自定义视图控件切换为继承需要切换的图片库的视图承载容器。

在上述技术方案的基础上,所述通用图片库访问接口具有以下三个参数:图片容器参数,用于表示承载图片的容器;图片路径参数,用于表示获取图片的路径,且该路径为uri格式;反馈信息回调接口参数,用于表示获取图片访问反馈信息的回调接口。

在上述技术方案的基础上,步骤s1之后还包括以下操作:根据图片的使用情况以及反馈信息的获取情况,对建立的通用图片库访问接口进行重载;步骤s3和步骤s4中,所述通用图片库访问接口为进行过重载后的通用图片库访问接口。

在上述技术方案的基础上,根据图片的使用情况以及反馈信息的获取情况,对建立的通用图片库访问接口进行重载的具体操作包括:

当无需获取图片访问反馈信息时,将建立的通用图片库访问接口中的反馈信息回调接口参数设置为空;

当直接使用本地默认图片时,将建立的通用图片库访问接口中的图片容器参数和/或图片路径参数设置为空;

当无需获取图片访问反馈信息且直接使用本地默认图片时,将建立的通用图片库访问接口中的图片容器参数和/或图片路径参数设置为空,并且将反馈信息回调接口参数设置为空。

本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述集成多种图片库的方法的步骤。

本发明还提供一种集成多种图片库的设备,包括存储器、处理器及存储在存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述集成多种图片库的方法的步骤。

本发明还提供一种集成多种图片库的系统,该系统包括通用图片库访问接口建立模块、自定义视图控件增设模块、图片库初始化使用模块和图片库切换模块;

所述通用图片库访问接口建立模块用于:通过对所有图片库的api进行抽象和归类,建立通用图片库访问接口,所述通用图片库访问接口用于通过调用对应图片库的实现方法来使用相应图片库;且所述通用图片库访问接口的一个实例对应一种图片库;

所述自定义视图控件增设模块用于:在视图层增设自定义视图控件,所述自定义视图控件用于继承对应图片库的视图承载容器;

所述图片库初始化使用模块用于:当系统进行初始化时,将指定的某个图片库所对应的通用图片库访问接口的实例作为参数传入到初始化的方法中;并将视图层中的自定义视图控件设置为继承指定的某个图片库的视图承载容器;

所述图片库切换模块用于:当需要进行图片库的切换时,将需要切换的图片库所对应的通用图片库访问接口的实例作为参数重新传入到初始化的方法中;并将自定义视图控件切换为继承需要切换的图片库的视图承载容器。

在上述技术方案的基础上,所述通用图片库访问接口具有以下三个参数:图片容器参数,用于表示承载图片的容器;图片路径参数,用于表示获取图片的路径,且该路径为uri格式;反馈信息回调接口参数,用于表示获取图片访问反馈信息的回调接口。

在上述技术方案的基础上,该系统还包括通用图片库访问接口重载模块,该通用图片库访问接口重载模块用于:根据图片的使用情况以及反馈信息的获取情况,对建立的通用图片库访问接口进行重载;所述图片库初始化使用模块是将指定的某个图片库所对应的经过重载后的通用图片库访问接口的实例作为参数传入到初始化的方法中;所述图片库切换模块是将需要切换的图片库所对应的经过重载后的通用图片库访问接口的实例作为参数重新传入到初始化的方法中。

在上述技术方案的基础上,所述通用图片库访问接口重载模块进行通用图片库访问接口的重载的具体流程为:

当无需获取图片访问反馈信息时,将建立的通用图片库访问接口中的反馈信息回调接口参数设置为空;

当直接使用本地默认图片时,将建立的通用图片库访问接口中的图片容器参数和/或图片路径参数设置为空;

当无需获取图片访问反馈信息且直接使用本地默认图片时,将建立的通用图片库访问接口中的图片容器参数和/或图片路径参数设置为空,并且将反馈信息回调接口参数设置为空。

本发明的有益效果在于:

(1)本发明中,通过对所有图片库的api进行抽象和归类,建立了一套通用图片库访问接口,使得软件中能实现多种图片库的集成。并且,当切换图片库的时,只需修改通用图片库访问接口的具体实例就能达到更换图片库的功能,可以保证上层的业务逻辑无需进行变更;与此同时,在视图层还增加了一个用于继承图片库视图承载容器的自定义视图控件,当切换图片库时,只需要修改自定义视图控件的继承关系,使其继承切换后的图片库的视图承载容器即可,而无需上层软件做任何的代码变更。整个切换操作简单、高效,且上层无感知,极大的降低了代码的入侵性,避免了程序bug的引入。

(2)本发明针对实际操作中,有些时候开发人员可能不会关注图片访问成功或失败的反馈信息,有些时候开发人员可能只需加载本地默认的图片,又或者上述两种情况兼有的情况,相应增设了通用图片库访问接口重载操作和通用图片库访问接口重载模块,使得本发明的适用性更高、使用范围广,开发人员体验更佳。

附图说明

图1为本发明实施例中集成多种图片库的方法的流程图;

图2为本发明实施例中集成多种图片库的设备的结构示意图;

图3为本发明实施例中集成多种图片库的系统的结构框图;

图4为本发明另一实施例中集成多种图片库的系统的结构框图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细描述。

参见图1所示,本发明实施例提供一种集成多种图片库的方法,该方法包括以下步骤:

步骤s1、通用图片库访问接口的建立:通过对所有图片库的api(applicationprogramminginterface,应用程序编程接口)进行抽象和归类,建立通用图片库访问接口,所述通用图片库访问接口用于:通过调用对应图片库的实现方法来使用相应图片库;且所述通用图片库访问接口的一个实例对应一种图片库。

可以理解的是,每一个图片库其内部的api设计方法和参数各不相同,为了能够统一这些不同的api逻辑,我们对所有图片库的api进行抽象和归类,然后建立了一套通用图片库访问接口,以完成图片库代码业务逻辑的封装。通过该通用图片库访问接口的设计能够满足开发人员使用图片库的需求的同时又能有效的兼容各种第三方图片库的使用。

具体来说,所述通用图片库访问接口具有三个参数:

1、图片容器参数(imagecontainertarget),表示用来承载图片的容器;

2、图片路径参数(uriuri),表示获取图片的路径,该路径是uri(uniformresourceidentifier,统一资源标识符)格式,这种格式可以兼容各种图片地址信息,包括但不限于:本地图片、网络图片、数据库图片等;

3、反馈信息回调接口参数(callbackcallback),表示获取图片访问反馈信息的回调接口;该反馈信息回调接口包括异常反馈信息回调接口(如onfail)和正常反馈信息回调接口(如onsuccess),当图片访问出现异常的时候,通过异常反馈信息回调接口(如onfail)将图片访问异常的信息反馈出来,当图片访问成功,通过正常反馈信息回调接口(如onsuccess)将图片信息反馈出来。

本实施例中,通用图片库访问接口命名为setimageurl,则对应构建的通用图片库访问接口的结构如下:

publicvoidsetimageurl(imagecontainertarget,uriuri,callbackcallback)

通过设计通用图片库访问接口,使得上层软件在使用的时候,仅仅通过调用通用图片库访问接口的具体实例就能够实现对应图片库的使用了。当切换图片库的时,只需修改通用图片库访问接口的具体实例就能达到更换图片库的功能,可以保证上层的业务逻辑不进行变更,操作简单、高效,极大的降低了代码的入侵性,避免了程序bug的引入。

步骤s2、自定义视图控件的增设:在视图层增设一个自定义视图控件,该自定义视图控件用于继承对应图片库的视图承载容器。

可以理解的是,由于各个图片库除了内部的api不同以外还需要适配各个图片库对应的视图才能够进行使用。每个图片库有一套自己的视图承载容器,这就使得我们想要动态切换图片库变得比较复杂,不仅要切换图片库本身还需要切换对应的视图承载器。因为不同的图片库使用的视图承载容器是不一样的,如果在开发过程中代码中使用的是图片库a的相关实现函数来实现图片的加载,但是在视图层却是使用的视图b的视图承载容器来承载图片信息,这样就会导致整个应用程序出现崩溃的情况。为了解决这种配对问题,我们在视图层增加了一个自定义视图控件,然后将自定义视图控件去继承对应图片库的视图承载容器。该自定义视图控件内部没有任何的实现逻辑,仅仅是将图片库的视图承载容器进行包裹,实现图片库视图业务逻辑的封装。当切换图片库时,只需对应的修改自定义视图控件的继承关系,使其继承切换后的图片库的视图承载容器即可。这样,上层代码由于使用的是自定义视图控件而不是直接的某个视图承载容器,就使得我们在切换视图承载容器的时候上层不用做任何的代码变更,只需调整自定义视图控件的继承关系就可达到视图承载容器的切换的目的。

步骤s3、图片库的初始化使用:当系统进行初始化时,将指定的某个图片库所对应的通用图片库访问接口的实例作为参数传入到初始化的方法中;并将视图层中的自定义视图控件设置为继承指定的某个图片库的视图承载容器。可以理解的是,本发明方法可应用的操作系统包括但不限于ios系统或android系统。因此,无论是ios系统还是android系统,在进行系统初始化时,均可按照步骤s3的操作进行图片库的初始化使用。

步骤s4、图片库的切换:当需要进行图片库的切换时,将需要切换的图片库所对应的通用图片库访问接口的实例作为参数重新传入到初始化的方法中;并将自定义视图控件切换为继承需要切换的图片库的视图承载容器。

进一步的,在实际操作中,有些时候开发人员可能不会关注图片访问成功或失败的反馈信息,又有些时候开发人员可能不需要图片容器参数或图片路径参数而只需加载本地默认的图片,又或者上述两种情况兼有。因此,在执行步骤s1之后,我们还可以根据图片的使用情况以及反馈信息的获取情况,对建立的通用图片库访问接口进行重载。在此基础上,步骤s3和步骤s4中,所述通用图片库访问接口则为进行过重载后的通用图片库访问接口。

更进一步的,根据图片的使用情况以及反馈信息的获取情况,对建立的通用图片库访问接口进行重载的具体操作包括:

当无需获取图片访问反馈信息时,将建立的通用图片库访问接口中的反馈信息回调接口参数(callbackcallback)设置为空(即为null)。例如,publicvoidsetimageurl(imagecontainertarget,uriuri)。

当直接使用本地默认图片时,将建立的通用图片库访问接口中的图片容器参数(imagecontainertarget)和/或图片路径参数(uriuri)设置为空(即为null)。例如,publicvoidsetimageurl(uriuri,callbackcallback)或者publicvoidsetimageurl(imagecontainertarget,callbackcallback)或者publicvoidsetimageurl(callbackcallback)。

当无需获取图片访问反馈信息且直接使用本地默认图片时,将建立的通用图片库访问接口中的图片容器参数(imagecontainertarget)和/或图片路径参数(uriuri)设置为空(即为null),并且将反馈信息回调接口参数(callbackcallback)设置为空(即为null)。例如,publicvoidsetimageurl(imagecontainertarget)或者publicvoidsetimageurl(uriuri)或者publicvoidsetimageurl()。

对应上述的集成多种图片库的方法,本发明实施例还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现上述各实施例中的集成多种图片库的方法的步骤。需要说明的是,所述存储介质包括u盘、移动硬盘、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。

另外,参见图2所示,对应上述的集成多种图片库的方法,本发明实施例还提供一种集成多种图片库的设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时可实现上述各实施例中的集成多种图片库的方法的步骤。

参见图3所示,本发明实施例还提供一种集成多种图片库的系统,该系统包括通用图片库访问接口建立模块、自定义视图控件增设模块、图片库初始化使用模块和图片库切换模块。

其中,通用图片库访问接口建立模块用于:通过对所有图片库的api进行抽象和归类,建立通用图片库访问接口,所述通用图片库访问接口用于通过调用对应图片库的实现方法来使用相应图片库;且所述通用图片库访问接口的一个实例对应一种图片库。

自定义视图控件增设模块用于:在视图层增设一个自定义视图控件,所述自定义视图控件用于继承对应图片库的视图承载容器;

图片库初始化使用模块用于:当系统进行初始化时,将指定的某个图片库所对应的通用图片库访问接口的实例作为参数传入到初始化的方法中;并将视图层中的自定义视图控件设置为继承指定的某个图片库的视图承载容器;

图片库切换模块用于:当需要进行图片库的切换时,将需要切换的图片库所对应的通用图片库访问接口的实例作为参数重新传入到初始化的方法中;并将自定义视图控件切换为继承需要切换的图片库的视图承载容器。

进一步地,参见图4所示,在另一种实施例中,集成多种图片库的系统还包括通用图片库访问接口重载模块,该通用图片库访问接口重载模块用于:根据图片的使用情况以及反馈信息的获取情况,对建立的通用图片库访问接口进行重载。在此基础上,所述图片库初始化使用模块是将指定的某个图片库所对应的经过重载后的通用图片库访问接口的实例作为参数传入到初始化的方法中;所述图片库切换模块是将需要切换的图片库所对应的经过重载后的通用图片库访问接口的实例作为参数重新传入到初始化的方法中。

更进一步地,所述通用图片库访问接口重载模块进行通用图片库访问接口的重载的具体流程为:

当无需获取图片访问反馈信息时,将建立的通用图片库访问接口中的反馈信息回调接口参数设置为空;

当直接使用本地默认图片时,将建立的通用图片库访问接口中的图片容器参数和/或图片路径参数设置为空;

当无需获取图片访问反馈信息且直接使用本地默认图片时,将建立的通用图片库访问接口中的图片容器参数和/或图片路径参数设置为空,并且将反馈信息回调接口参数设置为空。

需要说明的是:上述实施例提供的系统在实现集成多种图片库的操作时,仅以上述各功能模块的划分进行举例说明,实际应用中,可根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。

本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1