图文绘制方法、装置、电子设备和存储介质制造方法及图纸

技术编号:21480515 阅读:27 留言:0更新日期:2019-06-29 05:28
本发明专利技术实施例公开了一种图文绘制方法、装置、电子设备和存储介质。该方法包括:分别以待绘制内容和待绘制内容对应的绘制属性为输入参数,以链式调用方式顺次调用初始字符串对象的内容关联属性和属性关联属性,获得目标字符串对象,以建立各待绘制内容之间的内容关联关系,以及每个待绘制内容与相应待绘制内容对应的绘制属性之间的属性关联关系;以回调参数为输入参数,以链式调用方式调用目标字符串对象的图文绘制属性,以按照各绘制属性异步绘制各待绘制内容获得图文绘制结果;其中,内容关联属性、属性关联属性和图文绘制属性均为代码块类型。通过上述技术方案,实现了简便且高效地进行图文绘制,优化系统性能。

【技术实现步骤摘要】
图文绘制方法、装置、电子设备和存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种图文绘制方法、装置、电子设备和存储介质。
技术介绍
在移动应用的开发过程中,诸如聊天、评论、弹幕和状态发布等场景均会涉及图片与文字混合排列并展示,即图文混排或图文绘制。将图文绘制中图片与文字混合排列的文本类称为富文本。在图文绘制过程中,由于文字和图片的数量和大小均不确定,使得图文绘制的实现逻辑复杂,且系统功耗较高,尤其是在混排的图片与文字的数量庞大时系统功耗更高。现有技术中实现图文绘制的方法有:第一,针对每种应用场景中的图文绘制分别编写代码进行设计;第二,借助诸如YYTEXT等第三方框架进行富文本显示的代码实现。但是,第一种实现方案中各种场景对应的图文绘制代码大量重复,造成开发效率低、代码冗余且因占用大量的内存空间而无法降低系统功耗的问题。第二种实现方案中第三方框架功能冗余,造成使用繁琐,且同样无法降低系统功耗的问题。
技术实现思路
本专利技术实施例提供一种图文绘制方法、装置、电子设备和存储介质,以实现简便且高效地进行图文绘制,优化系统性能。第一方面,本专利技术实施例提供了一种图文绘制方法,包括:分别以待绘制内容和所述待绘制内容对应的绘制属性为输入参数,以链式调用方式顺次调用初始字符串对象的内容关联属性和属性关联属性,获得目标字符串对象,以建立各所述待绘制内容之间的内容关联关系,以及每个所述待绘制内容与相应待绘制内容对应的所述绘制属性之间的属性关联关系;其中,所述待绘制内容为文本或图片,且所述待绘制内容的数量为至少两个;以回调参数为输入参数,以链式调用方式调用所述目标字符串对象的图文绘制属性,以按照各所述绘制属性异步绘制各所述待绘制内容获得图文绘制结果;其中,所述初始字符串对象为基于系统字符串类而预先创建的字符串分类的实例化对象,所述内容关联属性、所述属性关联属性和所述图文绘制属性均为代码块类型。第二方面,本专利技术实施例还提供了一种图文绘制装置,该装置包括:关联关系建立模块,用于分别以待绘制内容和所述待绘制内容对应的绘制属性为输入参数,以链式调用方式顺次调用初始字符串对象的内容关联属性和属性关联属性,获得目标字符串对象,以建立各所述待绘制内容之间的内容关联关系,以及每个所述待绘制内容与相应待绘制内容对应的所述绘制属性之间的属性关联关系;其中,所述待绘制内容为文本或图片,且所述待绘制内容的数量为至少两个;图文绘制模块,用于以回调参数为输入参数,以链式调用方式调用所述目标字符串对象的图文绘制属性,以按照各所述绘制属性异步绘制各所述待绘制内容获得图文绘制结果;其中,所述初始字符串对象为基于系统字符串类而预先创建的字符串分类的实例化对象,所述内容关联属性、所述属性关联属性和所述图文绘制属性均为代码块类型。第三方面,本专利技术实施例还提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术任意实施例所提供的图文绘制方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本专利技术任意实施例所提供的图文绘制方法。本专利技术实施例通过链式调用基于系统字符串类分类而生成的初始字符串对象的内容关联属性和属性关联属性,将多个待绘制内容和每个待绘制内容对应的绘制属性关联起来,生成目标字符串对象,建立了各待绘制内容之间的内容关联关系以及每个待绘制内容与相应绘制属性之间的属性关联关系,实现通过一行简单的代码便可快速组装富文本,降低了系统内存消耗,提高了图文数据的管理便捷性,也提高了开发效率。通过以回调参数为输入参数,链式调用目标字符串对象的图文绘制属性的一行简单代码,实现了在子线程中按照各绘制属性异步绘制各待绘制内容获得图文绘制结果,并将图文绘制结果以回调方式传递至主线程,达到了高效且便捷地绘制图文,进一步降低系统内存消耗,及降低系统主线程的性能消耗,从而优化系统性能的技术效果。附图说明图1是本专利技术实施例一中的一种图文绘制方法的流程图;图2是本专利技术实施例中的一种图文绘制方法的实现原理示意图;图3是本专利技术实施例二中的一种图文绘制方法中图文绘制属性的实现方法的流程图;图4是本专利技术实施例三中的一种图文绘制方法中图文绘制函数的实现方法的流程图;图5是本专利技术实施例四中的一种图文绘制装置的结构示意图;图6是本专利技术实施例五中的一种电子设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一本实施例提供的图文绘制方法可适用于需要图文混排的情形。该方法可以由图文混排装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在电子设备中,例如典型的是用户终端设备,例如手机、平板电脑或台式电脑等。参见图1,本实施例的方法包括:S110、分别以待绘制内容和待绘制内容对应的绘制属性为输入参数,以链式调用方式顺次调用初始字符串对象的内容关联属性和属性关联属性,获得目标字符串对象,以建立各待绘制内容之间的内容关联关系,以及每个待绘制内容与相应待绘制内容对应的绘制属性之间的属性关联关系。其中,待绘制内容是指需要绘制及显示在电子设备界面上的一个绘制单元的内容。示例性地,待绘制内容为文本或图片,且待绘制内容的数量为至少两个。上述绘制单元的划分可以按照绘制属性和内容类型来划分。例如,绘制属性不同的文本需要划分为不同的待绘制内容,文本类型和图片类型也需划分为不同的待绘制内容。绘制属性是指绘制过程中待绘制内容的绘制样式,例如文本的字体、字号、颜色、阴影、偏移或背景等,以及图片的大小、颜色、阴影、偏移或背景等。每个待绘制内容均有其对应的绘制属性。待绘制内容和绘制属性的获取方式可以是用户输入、服务器拉取和系统内置等方式中的至少一种。初始字符串对象为基于系统字符串类NSString而预先创建的字符串分类NSString+RichText的实例化对象,其内未填充待绘制内容相关的数据。在创建分类时,为分类RichText增添了相关属性,而为了增添的属性能够实现一定的函数操作,将增添的属性均设置为代码块类型block类型。例如为分类RichText增添能够关联各个文本的内容关联属性append、能够关联文本和其绘制属性的属性关联属性(如圆角半径属性cornerRadius),以及能够为绘制图文提供接口的图文绘制属性draw等。即内容关联属性和属性关联属性均为代码块类型。具体地,相关技术中无论是针对每种场景独立编写图文绘制代码,还是采用第三方图文绘制框架,均会造成图文绘制代码量多而占用较多系统内存的情况。所以,本专利技术实施例中采用了将富文本组装的代码和图文混排绘制的代码均封装为相关函数(或block类型的属性),并将函数调用作为访问接口的形式。而为了增强代码可读性,进一步采用类似链式语法的函数封装方式来构造各个相关函数。这样,便可以通过链式调用的方式顺次调用各个相关函数,以一行代码完成图文绘制的各个操作,不仅不需要开发人员再编写图文绘制的底层实现代码,极大地提高本文档来自技高网...

【技术保护点】
1.一种图文绘制方法,其特征在于,包括:分别以待绘制内容和所述待绘制内容对应的绘制属性为输入参数,以链式调用方式顺次调用初始字符串对象的内容关联属性和属性关联属性,获得目标字符串对象,以建立各所述待绘制内容之间的内容关联关系,以及每个所述待绘制内容与相应待绘制内容对应的所述绘制属性之间的属性关联关系;其中,所述待绘制内容为文本或图片,且所述待绘制内容的数量为至少两个;以回调参数为输入参数,以链式调用方式调用所述目标字符串对象的图文绘制属性,以按照各所述绘制属性异步绘制各所述待绘制内容获得图文绘制结果;其中,所述初始字符串对象为基于系统字符串类而预先创建的字符串分类的实例化对象,所述内容关联属性、所述属性关联属性和所述图文绘制属性均为代码块类型。

【技术特征摘要】
1.一种图文绘制方法,其特征在于,包括:分别以待绘制内容和所述待绘制内容对应的绘制属性为输入参数,以链式调用方式顺次调用初始字符串对象的内容关联属性和属性关联属性,获得目标字符串对象,以建立各所述待绘制内容之间的内容关联关系,以及每个所述待绘制内容与相应待绘制内容对应的所述绘制属性之间的属性关联关系;其中,所述待绘制内容为文本或图片,且所述待绘制内容的数量为至少两个;以回调参数为输入参数,以链式调用方式调用所述目标字符串对象的图文绘制属性,以按照各所述绘制属性异步绘制各所述待绘制内容获得图文绘制结果;其中,所述初始字符串对象为基于系统字符串类而预先创建的字符串分类的实例化对象,所述内容关联属性、所述属性关联属性和所述图文绘制属性均为代码块类型。2.根据权利要求1所述的方法,其特征在于,当所述待绘制内容为图片时,所述内容关联属性通过如下方式实现建立各所述待绘制内容之间的内容关联关系的功能:确定与所述待绘制内容对应的占位文本;通过系统运行时函数,建立所述占位文本与前一个所述待绘制内容之间的内容关联关系,并建立所述占位文本与所述图片之间的内容关联关系。3.根据权利要求1所述的方法,其特征在于,所述图文绘制属性通过如下方式实现按照各所述绘制属性异步绘制各所述待绘制内容获得图文绘制结果的功能:依据所述目标字符串对象中的字符串、所述内容关联关系和所述属性关联关系,生成各目标富文本存储对象,并依据各所述目标富文本存储对象生成富文本数组;其中,所述目标富文本存储对象的数量与所述待绘制内容的数量一致,且所述目标富文本存储对象中包含所述待绘制内容和所述绘制属性;以所述富文本数组和所述回调参数为输入参数,通过富文本管理对象调用图文绘制函数,以按照各所述绘制属性异步绘制各所述待绘制内容获得图文绘制结果;其中,所述富文本管理对象为预先定义的富文本管理类的单例对象。4.根据权利要求3所述的方法,其特征在于,依据所述目标字符串对象中的字符串、所述内容关联关系和所述属性关联关系,生成各目标富文本存储对象包括:依据所述目标字符串对象中的字符串和所述内容关联关系,获得各所述待绘制内容,并分别将各所述待绘制内容作为内容元素存储至各初始富文本存储对象;依据所述属性关联关系,获得每个所述待绘制内容关联的所述绘制属性,并分别将各所述绘制属性作为属性元素存储至每个所述待绘制内容对应的所述初始富文本存储对象,生成各所述目标富文本存储对象。5.根据权利要求3所述的方法,其特征在于,所述图文绘制函数通过如下方式实现按照各所述绘制属性异步绘制各所述待绘制内容获得图文绘制结果的功能:通过预先创建的异步队列获得一个子线程;在所述子线程中,依据所述富文本数组生成各系统富文本类对象,并依据各所述系统富文本类对象,通过系统二维图文绘制函数,将所述待绘制内容按照各所述绘制属性绘制在一个绘图上下文中,生成目标图层对象;依据所述回调参数,...

【专利技术属性】
技术研发人员:张骏
申请(专利权)人:武汉斗鱼鱼乐网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1