一种文本的显示方法、装置、电子设备及可读存储介质与流程

文档序号:21459147发布日期:2020-07-10 17:56阅读:179来源:国知局
一种文本的显示方法、装置、电子设备及可读存储介质与流程

本申请涉及文本显示技术领域,尤其涉及一种文本的显示方法、装置、电子设备及可读存储介质。



背景技术:

随着互联网技术的快速发展,出现了很多资讯类、新闻类app应用程序,人们可以通过这些app应用程序查看到世界各地的实时新闻、社会热点等资讯信息。但是,终端设备的屏幕尺寸有限,为了在屏幕上显示出更多条资讯信息,通常,会规定每条资讯的显示区域的尺寸,因而存在在显示区域内,资讯信息显示不完全的情况,对于这种情况,一般会在显示区域的末尾处添加截断文本“…全文”来替换不能在显示区域进行显示的内容。

目前,需要人工设置截断模式和查找截断位置,来实现对截断文本的添加,这种添加方式繁琐且不灵活,且无法满足资讯信息的显示需求。



技术实现要素:

有鉴于此,本申请实施例至少提供一种文本的显示方法、装置、电子设备及可读存储介质,可以根据自定义的截断文本的宽度来灵活选择截断位置,实现对截断文本的自动添加。

本申请主要包括以下几个方面:

第一方面,本申请实施例提供一种文本的显示方法,所述显示方法包括:

基于文本显示区域的显示宽度和显示高度,确定目标文本在所述文本显示区域的目标行,所述目标行为所述目标文本在所述文本显示区域显示的最后一行;

确定所述目标文本在所述目标行的最后一个字符对应的第一位置,并获取所述目标文本中最后一个字符对应的第二位置;

若所述第一位置与所述第二位置不匹配,则根据截断文本的第一宽度、位于所述目标行的所述目标文本的第二宽度以及所述文本显示区域的显示宽度,确定在所述目标行添加所述截断文本的截断起始位置;

采用所述截断文本替换在所述截断起始位置后的所述目标文本。

在一种可能的实施方式中,所述基于文本显示区域的显示宽度和显示高度,确定目标文本在所述文本显示区域的目标行,包括:

获取预设的字体类型、字号大小、行间距、非文本大小;

根据预设的所述字体类型、所述字号大小、所述行间距、所述非文本大小,以及所述显示宽度和所述显示高度,确定所述目标文本在所述文本显示区域的所述目标行。

在一种可能的实施方式中,所述若所述第一位置与所述第二位置不匹配,则根据截断文本的第一宽度、位于所述目标行的所述目标文本的第二宽度以及所述文本显示区域的显示宽度,确定在所述目标行添加所述截断文本的截断起始位置,包括:

若所述第一位置与所述第二位置不匹配,将所述第一宽度和所述第二宽度相加,得到目标宽度;所述第二宽度包括所述目标行的所述目标文本的文本宽度和非文本宽度;

若所述目标宽度小于或等于所述显示宽度,则将在所述第一位置后、且与所述第一位置相邻的位置,确定为在所述目标行添加所述截断文本的截断起始位置。

在一种可能的实施方式中,所述显示方法还包括根据以下步骤确定所述第二宽度:

获取所述目标行的所述目标文本的目标内容;

基于预设的非文本内容库,确定所述目标内容中是否包含非文本内容;

若所述目标内容中包含所述非文本内容,则确定出所述非文本内容的所述非文本宽度,并将所述非文本宽度和所述文本宽度的宽度和,确定为所述第二宽度;

若所述目标内容中不包含所述非文本内容,则将所述文本宽度,确定为所述第二宽度。

在一种可能的实施方式中,所述显示方法还包括:

若所述目标宽度大于所述显示宽度,则将处于所述目标行的所述目标文本的最后的至少一个字符剔除;

在剔除所述至少一个字符后的所述目标宽度小于或等于所述显示宽度时,将在剔除所述至少一个字符后的所述第一位置后、且与所述第一位置相邻的位置,确定为在所述目标行添加所述截断文本的截断起始位置。

在一种可能的实施方式中,在所述采用所述截断文本替换在所述截断起始位置后的所述目标文本之前,所述显示方法还包括:

判断在所述截断起始位置处是否存在换行符;

若在所述截断起始位置处存在换行符,将所述换行符剔除。

在一种可能的实施方式中,在所述确定所述目标文本在所述目标行的最后一个字符对应的第一位置,并获取所述目标文本中最后一个字符对应的第二位置之后,所述显示方法还包括:

若所述第一位置与所述第二位置匹配,则不添加所述截断文本,并在所述文本显示区域上显示所述目标文本的全部内容。

第二方面,本申请实施例还提供一种文本的显示装置,所述显示装置包括:

第一确定模块,用于基于文本显示区域的显示宽度和显示高度,确定目标文本在所述文本显示区域的目标行,所述目标行为所述目标文本在所述文本显示区域显示的最后一行;

第二确定模块,用于确定所述目标文本在所述目标行的最后一个字符对应的第一位置,并获取所述目标文本中最后一个字符对应的第二位置;

第三确定模块,用于若所述第一位置与所述第二位置不匹配,则根据截断文本的第一宽度、位于所述目标行的所述目标文本的第二宽度以及所述文本显示区域的显示宽度,确定在所述目标行添加所述截断文本的截断起始位置;

替换模块,用于采用所述截断文本替换在所述截断起始位置后的所述目标文本。

在一种可能的实施方式中,所述第一确定模块,还用于根据以下步骤确定所述目标文本在所述文本显示区域的目标行:

获取预设的字体类型、字号大小、行间距、非文本大小;

根据预设的所述字体类型、所述字号大小、所述行间距、所述非文本大小,以及所述显示宽度和所述显示高度,确定所述目标文本在所述文本显示区域的所述目标行。

在一种可能的实施方式中,所述第三确定模块包括:

生成单元,用于若所述第一位置与所述第二位置不匹配,将所述第一宽度和所述第二宽度相加,得到目标宽度;所述第二宽度包括所述目标行的所述目标文本的文本宽度和非文本宽度;

第一确定单元,用于若所述目标宽度小于或等于所述显示宽度,则将在所述第一位置后、且与所述第一位置相邻的位置,确定为在所述目标行添加所述截断文本的截断起始位置。

在一种可能的实施方式中,所述第三确定模块还包括第二确定单元;所述第二确定单元用于根据以下步骤确定所述第二宽度:

获取所述目标行的所述目标文本的目标内容;

基于预设的非文本内容库,确定所述目标内容中是否包含非文本内容;

若所述目标内容中包含所述非文本内容,则确定出所述非文本内容的所述非文本宽度,并将所述非文本宽度和所述文本宽度的宽度和,确定为所述第二宽度;

若所述目标内容中不包含所述非文本内容,则将所述文本宽度,确定为所述第二宽度。

在一种可能的实施方式中,所述第三确定模块还包括:

剔除单元,用于若所述目标宽度大于所述显示宽度,则将处于所述目标行的所述目标文本的最后的至少一个字符剔除;

第三确定单元,用于在剔除所述至少一个字符后的所述目标宽度小于或等于所述显示宽度时,将在剔除所述至少一个字符后的所述第一位置后、且与所述第一位置相邻的位置,确定为在所述目标行添加所述截断文本的截断起始位置。

在一种可能的实施方式中,所述显示装置还包括:

判断模块,用于判断在所述截断起始位置处是否存在换行符;

剔除模块,用于若在所述截断起始位置处存在换行符,将所述换行符剔除。

在一种可能的实施方式中,所述显示装置还包括显示模块:

所述显示模块,用于若所述第一位置与所述第二位置匹配,则不添加所述截断文本,并在所述文本显示区域上显示所述目标文本的全部内容。

第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线进行通信,所述机器可读指令被所述处理器运行时执行上述第一方面或第一方面中任一种可能的实施方式中所述的文本的显示方法的步骤。

第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面或第一方面中任一种可能的实施方式中所述的文本的显示方法的步骤。

本申请实施例中,通过文本显示区域的显示宽度和显示高度,可以确定目标文本在文本显示区域的目标行,若目标行的最后一个字符的第一位置和目标文本中最后一个字符的第二位置不匹配,说明目标文本在文本显示区域无法全部进行显示,则根据自定义的截断文本的第一宽度、位于目标行的目标文本的第二宽度以及显示宽度,来自动地确定截断起始位置,即,可以根据自定义的截断文本的第一宽度来灵活选择截断位置,这样,无需人工设置截断模式和查找截断位置,就可以实现对截断文本的自动添加,并采用截断文本替换在截断起始位置后的目标文本进行显示,可以使目标文本匹配文本显示区域进行显示。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例所提供的一种文本的显示方法的流程图;

图2示出了本申请实施例所提供的另一种文本的显示方法的流程图;

图3a、图3b示出了在文本显示区域显示目标文本的示意图;

图4示出了本申请实施例所提供的一种文本的显示装置的功能模块图之一;

图5示出了图4中第三确定模块的功能模块图;

图6示出了本申请实施例所提供的一种文本的显示装置的功能模块图之二;

图7示出了本申请实施例所提供的一种电子设备的结构示意图。

主要元件符号说明:

图中:400-文本的显示装置;410-第一确定模块;420-第二确定模块;430-第三确定模块;431-生成单元;432-第一确定单元;433-第二确定单元;434-剔除单元;435-第三确定单元;440-替换模块;450-判断模块;460-剔除模块;470-显示模块;700-电子设备;710-处理器;720-存储器;730-总线。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中的附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。

另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的全部其他实施例,都属于本申请保护的范围。

为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“文本显示”,给出以下实施方式,对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。

本申请实施例下述方法、装置、电子设备或计算机可读存储介质可以应用于任何需要进行文本显示的场景,本申请实施例并不对具体的应用场景作限制,任何使用本申请实施例提供的文本显示方法及装置的方案均在本申请保护范围内。

值得注意的是,在本申请提出之前,需要人工设置截断模式和查找截断位置,来实现对截断文本的添加,这种添加方式繁琐且不灵活,且无法满足资讯信息的显示需求。

针对上述问题,本申请实施例,通过文本显示区域的显示宽度和显示高度,可以确定目标文本在文本显示区域的目标行,若目标行的最后一个字符的第一位置和目标文本中最后一个字符的第二位置不匹配,说明目标文本在文本显示区域无法全部进行显示,则根据自定义的截断文本的第一宽度、位于目标行的目标文本的第二宽度以及显示宽度,来自动地确定截断起始位置,即,可以根据自定义的截断文本的第一宽度来灵活选择截断位置,这样,无需人工设置截断模式和查找截断位置,就可以实现对截断文本的自动添加,并采用截断文本替换在截断起始位置后的目标文本进行显示,可以使目标文本匹配文本显示区域进行显示。

为便于对本申请进行理解,下面结合具体实施例对本申请提供的技术方案进行详细说明。

图1为本申请实施例所提供的一种文本的显示方法的流程图。如图1所示,本申请实施例提供的文本的显示方法,包括以下步骤:

s101:基于文本显示区域的显示宽度和显示高度,确定目标文本在所述文本显示区域的目标行,所述目标行为所述目标文本在所述文本显示区域显示的最后一行。

在具体实施中,随着互联网技术的快速发展,出现了很多资讯类、新闻类app应用程序,人们可以通过这些app应用程序查看到世界各地的实时新闻、社会热点等资讯信息。但是,终端设备的屏幕尺寸有限,为了在有限的屏幕上显示出更多条资讯信息,通常,会规定每条资讯信息的文本显示区域的尺寸,即规定文本显示区域的显示宽度和显示高度。

这里,每条资讯信息可以为一个目标文本,在获取到用于显示目标文本的文本显示区域的尺寸后,即,在获取到该文本显示区域的显示宽度和显示高度后,确定出目标文本可以在该文本显示区域上显示的目标行,其中,目标行为目标文本在文本显示区域显示的最后一行。这里,如果该文本显示区域可以容纳目标文本的全部内容,根据目标文本的内容的多少,以及该文本显示区域的尺寸来共同确定目标行;如果该文本显示区域不能容纳下目标文本的全部内容,则在该文本显示区域只能显示出目标文本的部分内容,根据该文本显示区域的尺寸来确定目标行。

其中,文本显示区域的显示宽度一般是预先设置的,可以是基于app应用程序的界面进行设定的,也可以是基于app应用程序中的交互场景进行设定的。

进一步地,对目标文本在文本显示区域的目标行的确定方法进行阐述,也即,步骤s101中所述基于文本显示区域的显示宽度和显示高度,确定目标文本在所述文本显示区域的目标行,包括以下步骤:

获取预设的字体类型、字号大小、行间距、非文本大小;根据预设的所述字体类型、所述字号大小、所述行间距、所述非文本大小,以及所述显示宽度和所述显示高度,确定所述目标文本在所述文本显示区域的所述目标行。

在具体实施中,在确定了文本显示区域的显示宽度和显示高度后,根据预设的字体类型、字号大小、行间距、非文本大小,可以确定出目标文本在文本显示区域的目标行,其中,目标行是目标文本在文本显示区域显示的最后一行。这里,预设的字体类型、字号大小、行间距、非文本大小可以是目标文本中字体类型、字号大小、行间距、非文本大小,也可以是预设的在文本显示区域进行显示的字体类型、字号大小、行间距、非文本大小,还可以是根据app应用程序中场景或对应的界面等等进行预设的。

s102:确定所述目标文本在所述目标行的最后一个字符对应的第一位置,并获取所述目标文本中最后一个字符对应的第二位置。

在具体实施中,在确定出目标文本在文本显示区域的目标行后,根据目标文本的文本内容,确定出目标文本中在目标行的最后一个字符,并确定出该最后一个字符在目标文本中的第一位置,并获取目标文本中的最后一个字符在目标文本中的第二位置,即,分别确定出目标文本中处于目标行的最后一个字符的第一位置,以及处于整个文本最后一个字符的第二位置。这里,目标文本中的每个字符都有位置编码的,因而,可以知晓每个字符的位置。

进一步地,步骤s102中所述确定所述目标文本在所述目标行的最后一个字符对应的第一位置,包括以下步骤:

从所述目标文本中,获取所述目标行对应的内容;根据所述目标行对应的内容,确定在所述目标行的最后一个字符的第一位置。

在具体实施中,在确定出目标文本在文本显示区域的目标行后,从目标文本中,获取处于目标行的内容,并从处于目标行的内容中,确定出处于目标行的内容中的最后一个字符,进而,确定出处于目标行的内容中的最后一个字符的第一位置。

s103:若所述第一位置与所述第二位置不匹配,则根据截断文本的第一宽度、位于所述目标行的所述目标文本的第二宽度以及所述文本显示区域的显示宽度,确定在所述目标行添加所述截断文本的截断起始位置。

在具体实施中,若目标文本中处于目标行的最后一个字符的第一位置和处于整个文本最后一个字符的第二位置不匹配,也即,目标文本在目标行数的最后一个字符的位置编码,与目标文本中的最后一个字符的位置编码不同,说明这两个字符是不同的字符,即目标文本在文本显示区域无法全部进行显示,目标文本在文本显示区域只能部分进行显示,这时,可以在文本显示区域的末尾处添加截断文本,截断文本用于替换在截断起始位置后的目标文本,这里,可以根据截断文本的第一宽度与目标行的目标文本的第二宽度的宽度和,与文本显示区域的显示宽度之间的大小关系,来确定在目标行添加截断文本的截断起始位置。

需要说明的是,通过找到目标行的内容中的最后一个字符第一位置,确定该字符是否是整个目标文本的最后一个字符,来决定是否要展示截断文本,如果是整个目标文本的最后一个字符,则不展示截断文本,反之则展示截断文本;这里,目标行的内容即为文本显示区域中最后一行的内容。

具体地,目标文本中的每个字符都有位置编码的,因而,可以知晓每个字符的位置,因而,在判断目标行的文本内容中的最后一个字符是否是目标文本的全文中的最后一个字符,不是比较两个字符是否相同来做的,而是通过目标文本全文的文本长度,确定出目标文本全文中最后一个字符的第二位置,比如全文长度为100,则目标文本全文中最后一个字符的第二位置是编码99(编码一般是从0开始进行编码的),而在步骤s102中确定出了目标行的最后一个字符的第一位置,第一位置比如编码23,判断编码99是否与编码23相等,若相等说明目标文本中处于目标行的最后一个字符的第一位置和处于整个文本最后一个字符的第二位置相同,反之,则不同。

这里,截断文本的内容可以自定义进行设置,截断文本比如,“...全文”,因而,截断文本宽度的截断文本宽度也可以自定义设置,还可以在截断文本上制作超链接,在点击“...全文”时,可以跳转至显示出目标文本全部内容的另外一个界面。

进一步地,目标文本中处于目标行的最后一个字符的第一位置和处于整个文本最后一个字符的第二位置还存在相同的情况,即第一位置和第二位置相同的情况,对于这种情况,也即,若所述第一位置与所述第二位置匹配,则不添加所述截断文本,并在所述文本显示区域上显示所述目标文本的全部内容。

在具体实施中,若目标文本中处于目标行的最后一个字符的第一位置和处于整个文本最后一个字符的第二位置相同,说明这两个字符是处于同一个位置的字符,即目标文本在文本显示区域内可以全部显示出来,这时,无需在文本显示区域内添加截断文本,可以直接在文本显示区域上显示目标文本的全部内容。

s104:采用所述截断文本替换在所述截断起始位置后的所述目标文本。

在具体实施中,在确定出目标文本中处于目标行的最后一个字符的第一位置和处于整个文本最后一个字符的第二位置不同后,说明这两个字符不是处于同一个位置的字符,即目标文本在文本显示区域无法全部进行显示,则在文本显示区域的末尾处添加截断文本,并在确定出在目标行对应的内容处添加截断文本的截断起始位置之后,采用截断文本替换在截断起始位置后的目标文本中的内容,进而,将目标文本中的部分内容和截断文本显示在文本显示区域内。

通常,在coretext(文本布局工具)框架下,可以自动识别出添加截断文本的位置,但是,对于移动终端为ios移动操作系统而言,ios开发大多是使用面向对象的编程语言(objective-c,oc)的,而coretext框架是以c语言api方式提供文本布局和渲染接口的,c语言和oc语言是两种不同的语言,故,使用coretext框架,编程人员的维护程序的难度较大。textkit框架(文本布局工具)对iosoc开发者较友好,具体体现在textkit框架是对coretext(文本布局工具)框架的封装,并且对外提供了一套面向对象的、对开发者更加友好的oc语言api,且维护成本更低,因而对于ios端文本布局一般用textkit框架来进行布局,但是,textkit框架本身不支持自动创建截断,添加方式繁琐且不灵活,而是需要人工手动添加。所以,在ios移动操作系统下,可以采用本申请给出的方法,在textkit框架下,也可以自定义添加截断文本,还可以实现使截断文本正确显示在显示内容的末尾处的合适位置。

在本申请实施例中,通过文本显示区域的显示宽度和显示高度,可以确定目标文本在文本显示区域的目标行,若目标行的最后一个字符的第一位置和目标文本中最后一个字符的第二位置不匹配,说明目标文本在文本显示区域无法全部进行显示,则根据自定义的截断文本的第一宽度、位于目标行的目标文本的第二宽度以及显示宽度,来自动地确定截断起始位置,即,可以根据自定义的截断文本的第一宽度来灵活选择截断位置,这样,无需人工设置截断模式和查找截断位置,就可以实现对截断文本的自动添加,并采用截断文本替换在截断起始位置后的目标文本进行显示,可以使目标文本匹配文本显示区域进行显示。

图2为本申请实施例所提供的另一种文本的显示方法的流程图。如图2所示,本申请实施例提供的文本的显示方法,包括以下步骤:

s201:基于文本显示区域的显示宽度和显示高度,确定目标文本在所述文本显示区域的目标行,所述目标行为所述目标文本在所述文本显示区域显示的最后一行。

s202:确定所述目标文本在所述目标行的最后一个字符对应的第一位置,并获取所述目标文本中最后一个字符对应的第二位置。

s203:若所述第一位置与所述第二位置不匹配,将所述第一宽度和所述第二宽度相加,得到目标宽度;所述第二宽度包括所述目标行的所述目标文本的文本宽度和非文本宽度。

在具体实施中,若目标文本中处于目标行的最后一个字符的第一位置和处于整个文本最后一个字符的第二位置不匹配,说明目标文本在文本显示区域无法全部进行显示,目标文本在文本显示区域只能部分进行显示,这时,可以在文本显示区域的末尾处添加截断文本,具体地,先需要确定截断文本的添加位置,即截断起始位置,先将截断文本的第一宽度和位于目标行的目标文本的第二宽度相加,得到目标宽度,这里,目标文本的内容包括但不限于文本内容和非文本内容,其中,非文本内容可以为表情图,在具体计算位于目标行的目标文本的第二宽度时,是分别获取目标行对应的文本内容的文本宽度,以及目标行对应的非文本内容中的非文本宽度的,故,位于目标行的目标文本的第二宽度等于该文本宽度与该非文本宽度之和。

进一步地,对位于目标行的目标文本的第二宽度的确定步骤进行阐述,具体地,根据以下步骤确定位于目标行的目标文本的第二宽度:

获取所述目标行的所述目标文本的目标内容;基于预设的非文本内容库,确定所述目标内容中是否包含非文本内容;若所述目标内容中包含所述非文本内容,则确定出所述非文本内容的所述非文本宽度,并将所述非文本宽度和所述文本宽度的宽度和,确定为所述第二宽度;若所述目标内容中不包含所述非文本内容,则将所述文本宽度,确定为所述第二宽度。

在具体实施中,先获取位于目标行的目标文本的目标内容,进而,从目标内容中识别出非文本内容和文本内容,这里,可以提前预设非文本内容库,非文本内容库中存储有大量的非文本,在从目标内容中识别非文本内容时,可以直接将非文本内容库中的非文本与目标内容中的各个符号进行匹配,如果目标内容中含有非文本内容库中的非文本,则确定出非文本内容的非文本宽度,以及根据字体类型、字号大小和字数,来确定目标内容中文本内容的文本宽度,并将文本宽度和非文本宽度的宽度和,确定为位于目标行的目标文本的第二宽度;如果目标内容中没有非文本内容,则直接将文本宽度,确定为第二宽度。

s204:若所述目标宽度小于或等于所述显示宽度,则将在所述第一位置后、且与所述第一位置相邻的位置,确定为在所述目标行添加所述截断文本的截断起始位置。

在具体实施中,若截断文本的第一宽度和位于目标行的目标文本的第二宽度相加得到目标宽度小于或等于显示宽度,说明在目标行对应的目标内容后添加截断文本之后,没有超出文本显示区域的显示宽度,即添加了截断文本后的目标行对应的目标内容仍可以正常显示在文本显示区域内,此时,直接将在第一位置后、且与第一位置相邻的位置,确定为在目标行添加截断文本的截断起始位置。

需要说明的是,对于目标文本在文本显示区域无法全部进行显示,且目标宽度小于或等于显示宽度的情况,说明目标行对应的目标内容可能为目标文本中某一段落的最后一行的内容,故,存在截断文本的第一宽度和位于目标行对应的目标文本的第二宽度相加得到目标宽度小于或等于显示宽度。

进一步地,当然除了截断文本的第一宽度和第二宽度相加得到目标宽度小于或等于显示宽度的情况外,这里,第二宽度为位于目标行的目标文本的宽度,还存在截断文本的第一宽度和第二宽度相加得到目标宽度大于显示宽度的情况,对这一情况,下面展开说明:

若所述目标宽度大于所述显示宽度,则将处于所述目标行的所述目标文本的最后的至少一个字符剔除;在剔除所述至少一个字符后的所述目标宽度小于或等于所述显示宽度时,将在剔除所述至少一个字符后的所述第一位置后、且与所述第一位置相邻的位置,确定为在所述目标行添加所述截断文本的截断起始位置。

在具体实施中,若截断文本的第一宽度和第二宽度相加得到目标宽度大于显示宽度,说明在目标行添加截断文本之后,超出了文本显示区域的显示宽度,即添加了截断文本后,目标行对应的目标文本和截断文本不能共同正常显示在文本显示区域内,此时,可以将处于目标行的目标文本的最后的一个字符剔除,若剔除该字符后的目标宽度小于或等于显示宽度,将在剔除该字符后的第一位置后、且与第一位置相邻的位置,确定为在目标行添加截断文本的截断起始位置;若剔除该字符后的目标宽度仍大于显示宽度,则继续剔除当前处于目标行对应的最后的一个字符,直至剔除字符后的目标宽度小于或等于显示宽度为止,确定出添加截断文本的截断起始位置。

s205:采用所述截断文本替换在所述截断起始位置后的所述目标文本。

进一步地,由于存在截断起始位置处存在换行符的情况,若直接在截断起始位置处添加截断文本,由于换行符的存在,截断文本会在目标行下面的一行中,而文本显示区域最多显示出目标行,致使截断文本不能在文本显示区域进行显示,故,在添加截断文本时,需要将换行符删除。在步骤s205中所述采用所述截断文本替换在所述截断起始位置后的所述目标文本之前,还包括以下步骤:

判断在所述截断起始位置处是否存在换行符;若在所述截断起始位置处存在换行符,将所述换行符剔除。

在具体实施中,在确定出在目标行添加截断文本的截断起始位置后,先判断在截断起始位置处是否存在换行符,若在截断起始位置处存在换行符,将换行符剔除后,用截断文本替换在截断起始位置后的目标文本,将目标文本中的部分文本内容和截断文本显示在文本显示区域内;若在截断起始位置处不存在换行符,直接采用截断文本替换在截断起始位置后的目标文本,将目标文本中的部分文本内容和截断文本显示在文本显示区域内。

其中,步骤s201、s202、s205的描述可以参见步骤s101、s102、s104的描述,并且能够达到相同的技术效果,对此,不再进行阐述。

图3a、图3b示出了在文本显示区域显示目标文本的示意图;其中,图3a示出了添加截断文本“...全文”后的目标文本,在文本显示区域显示的示意图,资讯app应用程序的界面包括文本显示区域和图片显示区域;图3b示出了目标文本在全文显示区域显示的示意图,这里,在图3a中的“...全文”上添加超链接,用户点击“...全文”后,可以跳转至显示目标文本全文的界面,即图3b中的全文显示区域可以显示出目标文本的全部内容。

一示例中,结合图3a和图3b,对本申请提供的文本的显示方法的实施过程进行举例说明,包括以下步骤:

步骤a:确定目标文本在文本显示区域的目标行为3;

步骤b:目标行对应的目标文本为“好风光中,生长着众多不”;

步骤c:目标行对应的目标文本的最后一个字符为“不”,确定“不”与整个目标文本的最后一个字符“!”不匹配,故,需要在文本显示区域展示截断文本“...全文”;

步骤d:计算截断文本“...全文”的第一宽度与位于目标行的目标文本的第二宽度之和,即目标宽度,判断目标宽度是否超过了文本显示区域的显示宽度;其中,第二宽度包括目标行的目标文本的文本宽度和非文本宽度,其中,识别出非文本为

步骤e:判断目标行对应的目标文本的最后是否存在换行符,这里,不存在换行符,则不需要考虑换行的情况;

步骤f:目标宽度超过了文本显示区域的显示宽度,则需要查找到合适的位置处添加截断文本,从目标行的目标文本的最后一个字符所在位置往前找,循环进行,直到找到添加截断文本后的目标宽度不超过显示宽度时,将该位置确定为添加截断文本的截断起始位置;

“好风光中,生长着众多不...全文”;

“好风光中,生长着众多...全文”;

...

“好风光中,生长...全文”;

步骤g:直至找到的正确显示截断文本的截断起始位置,在该位置出采用截断文本“...全文”替换在截断起始位置后的目标文本中的内容,即,目标行对应的内容为“好风光中,生长...全文”。

在本申请实施例中,通过文本显示区域的显示宽度和显示高度,可以确定目标文本在文本显示区域的目标行,若目标行的最后一个字符的第一位置和目标文本中最后一个字符的第二位置不匹配,说明目标文本在文本显示区域无法全部进行显示,则根据自定义的截断文本的第一宽度、位于目标行的目标文本的第二宽度以及显示宽度,来自动地确定截断起始位置,即,可以根据自定义的截断文本的第一宽度来灵活选择截断位置,这样,无需人工设置截断模式和查找截断位置,就可以实现对截断文本的自动添加,并采用截断文本替换在截断起始位置后的目标文本进行显示,可以使目标文本匹配文本显示区域进行显示。

基于同一申请构思,本申请实施例中还提供了与上述实施例提供的文本的显示方法对应的文本的显示装置,由于本申请实施例中的装置解决问题的原理与本申请上述实施例的文本的显示方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

如图4至图6所示,图4示出了本申请实施例所提供的一种文本的显示装置400的功能模块图之一;图5示出了图4中第三确定模块430的功能模块图;图6示出了本申请实施例所提供的一种文本的显示装置400的功能模块图之二。

如图4所示,所述文本的显示装置400,包括:

第一确定模块410,用于基于文本显示区域的显示宽度和显示高度,确定目标文本在所述文本显示区域的目标行,所述目标行为所述目标文本在所述文本显示区域显示的最后一行;

第二确定模块420,用于确定所述目标文本在所述目标行的最后一个字符对应的第一位置,并获取所述目标文本中最后一个字符对应的第二位置;

第三确定模块430,用于若所述第一位置与所述第二位置不匹配,则根据截断文本的第一宽度、位于所述目标行的所述目标文本的第二宽度以及所述文本显示区域的显示宽度,确定在所述目标行添加所述截断文本的截断起始位置;

替换模块440,用于采用所述截断文本替换在所述截断起始位置后的所述目标文本。

在一种可能的实施方式中,如图4所示,所述第一确定模块410,还用于根据以下步骤确定所述目标文本在所述文本显示区域的目标行:

获取预设的字体类型、字号大小、行间距、非文本大小;

根据预设的所述字体类型、所述字号大小、所述行间距、所述非文本大小,以及所述显示宽度和所述显示高度,确定所述目标文本在所述文本显示区域的所述目标行。

在一种可能的实施方式中,如图5所示,所述第三确定模块430包括:

生成单元431,用于若所述第一位置与所述第二位置不匹配,将所述第一宽度和所述第二宽度相加,得到目标宽度;所述第二宽度包括所述目标行的所述目标文本的文本宽度和非文本宽度;

第一确定单元432,用于若所述目标宽度小于或等于所述显示宽度,则将在所述第一位置后、且与所述第一位置相邻的位置,确定为在所述目标行添加所述截断文本的截断起始位置。

在一种可能的实施方式中,如图5所示,所述第三确定模块430还包括第二确定单元433;所述第二确定单元433用于根据以下步骤确定所述第二宽度:

获取所述目标行的所述目标文本的目标内容;

基于预设的非文本内容库,确定所述目标内容中是否包含非文本内容;

若所述目标内容中包含所述非文本内容,则确定出所述非文本内容的所述非文本宽度,并将所述非文本宽度和所述文本宽度的宽度和,确定为所述第二宽度;

若所述目标内容中不包含所述非文本内容,则将所述文本宽度,确定为所述第二宽度。

在一种可能的实施方式中,如图5所示,所述第三确定模块430还包括:

剔除单元434,用于若所述目标宽度大于所述显示宽度,则将处于所述目标行的所述目标文本的最后的至少一个字符剔除;

第三确定单元435,用于在剔除所述至少一个字符后的所述目标宽度小于或等于所述显示宽度时,将在剔除所述至少一个字符后的所述第一位置后、且与所述第一位置相邻的位置,确定为在所述目标行添加所述截断文本的截断起始位置。

在一种可能的实施方式中,如图6所示,所述文本的显示装置400还包括:

判断模块450,用于判断在所述截断起始位置处是否存在换行符;

剔除模块460,用于若在所述截断起始位置处存在换行符,将所述换行符剔除。

在一种可能的实施方式中,如图6所示,所述文本的显示装置400还包括显示模块470:

所述显示模块470,用于若所述第一位置与所述第二位置匹配,则不添加所述截断文本,并在所述文本显示区域上显示所述目标文本的全部内容。

在本申请实施例中,通过文本显示区域的显示宽度和显示高度,可以确定目标文本在文本显示区域的目标行,若目标行的最后一个字符的第一位置和目标文本中最后一个字符的第二位置不匹配,说明目标文本在文本显示区域无法全部进行显示,则根据自定义的截断文本的第一宽度、位于目标行的目标文本的第二宽度以及显示宽度,来自动地确定截断起始位置,即,可以根据自定义的截断文本的第一宽度来灵活选择截断位置,这样,无需人工设置截断模式和查找截断位置,就可以实现对截断文本的自动添加,并采用截断文本替换在截断起始位置后的目标文本进行显示,可以使目标文本匹配文本显示区域进行显示。

基于同一申请构思,参见图7所示,为本申请实施例提供的一种电子设备700的结构示意图,包括:处理器710、存储器720和总线730,所述存储器720存储有所述处理器710可执行的机器可读指令,当电子设备700运行时,所述处理器710与所述存储器720之间通过所述总线730进行通信,所述机器可读指令被所述处理器710运行时执行如上述实施例中任一所述的文本的显示方法的步骤。

具体地,所述机器可读指令被所述处理器710执行时可以执行如下处理:

基于文本显示区域的显示宽度和显示高度,确定目标文本在所述文本显示区域的目标行,所述目标行为所述目标文本在所述文本显示区域显示的最后一行;

确定所述目标文本在所述目标行的最后一个字符对应的第一位置,并获取所述目标文本中最后一个字符对应的第二位置;

若所述第一位置与所述第二位置不匹配,则根据截断文本的第一宽度、位于所述目标行的所述目标文本的第二宽度以及所述文本显示区域的显示宽度,确定在所述目标行添加所述截断文本的截断起始位置;

采用所述截断文本替换在所述截断起始位置后的所述目标文本。

本申请实施例中,通过文本显示区域的显示宽度和显示高度,可以确定目标文本在文本显示区域的目标行,若目标行的最后一个字符的第一位置和目标文本中最后一个字符的第二位置不匹配,说明目标文本在文本显示区域无法全部进行显示,则根据自定义的截断文本的第一宽度、位于目标行的目标文本的第二宽度以及显示宽度,来自动地确定截断起始位置,即,可以根据自定义的截断文本的第一宽度来灵活选择截断位置,这样,无需人工设置截断模式和查找截断位置,就可以实现对截断文本的自动添加,并采用截断文本替换在截断起始位置后的目标文本进行显示,可以使目标文本匹配文本显示区域进行显示。

基于同一申请构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述实施例提供的文本的显示方法的步骤。

具体地,所述存储介质能够为通用的存储介质,如移动磁盘、硬盘等,所述存储介质上的计算机程序被运行时,能够执行上述文本的显示方法,可以根据自定义的截断文本的宽度来灵活选择截断位置,实现对截断文本的自动添加。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应所述理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

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

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

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