给文本指定图片的方法及系统与流程

文档序号:14250667阅读:251来源:国知局
给文本指定图片的方法及系统与流程

本发明涉及用户界面技术领域,尤其是涉及给文本指定图片的方法及系统。



背景技术:

目前,android(安卓)的textview是最常见的最通用的文本显示控件,通过textview可以给文本设置指定背景,但是直接设置背景有个明显的缺点是设置的背景针对的是全部文本,不能直接给特定文本设置背景。当然,android中还提供了spannablestring(内容和标记不可改变的文本)或者spannablestringbuilder(内容和标记可以改变的文本)用来拓展文本的显示,通过它们可以给原来的文本加下划线、加背景色、改变字体颜色、用图片把指定的文字给替换掉等等,其中可以给指定文字加背景色,但是这个背景色仅限于一种样式,显示效果比较单调,实际开发中并不能满足多样化的产品开发需求。通过imagespan(文本中可添加的图片显示的基类)在spannablestring或者spannablestringbuilder中设置可以在文本中指定文本替换为添加的图片,但是依然满足不了给指定文本添加指定背景图片的需求。



技术实现要素:

有鉴于此,本发明的目的在于提供给文本指定图片的方法及系统,既能满足给指定文本添加指定背景图片的需求又能节省外部调用的复杂度。

第一方面,本发明实施例提供了一种给文本指定图片的方法,其中,包括:

通过创建不可变文本对象获取待添加背景的指定文本和用于所述指定文本的背景图片;

对所述指定文本和所述背景图片进行参数构造,获取所述背景图片的界限大小信息;

根据所述界限大小信息将所述背景图片的显示方式设置为居中显示,以及将所述指定文本的对齐方式设置为居中对齐;

将所述指定文本绘制到所述背景图片上,获取图文显示信息。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述通过创建不可变文本对象获取待添加背景的指定文本和用于所述指定文本的背景图片包括:

创建所述不可变文本对象;

根据所述不可变文本对待显示的字符串内容进行传入,获取所述指定文本;

根据所述不可变文本对背景资源进行选择,获取所述背景图片。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述对所述指定文本和所述背景图片进行参数构造,获取所述背景图片的界限大小信息,包括:

将所述指定文本和所述背景图片的对齐方式均设置为垂直居中;

对所述指定文本中文字距离左/右两边缘的间距进行识别,获取边缘间距值;

对所述指定文本中的字体度量参数进行识别,获取文本宽度值和文本高度值;

在所述文本宽度值的基础上增加第一倍数的所述边缘间距值,获取所述背景图片的图片宽度值;

根据所述文本高度值获取所述背景图片的图片高度值;

根据所述图片宽度值和所述图片高度值获取所述界限大小信息。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述将所述指定文本绘制到所述背景图片上,获取图文显示信息,包括:

根据所述指定文本生成目标矩形;

采用绘制文本方法将所述目标矩形绘制到所述背景图片上,获取所述图文显示信息。

结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述背景图片的图片格式为可自定义伸缩的格式。

第二方面,本发明实施例还提供一种给文本指定图片的系统,其中,包括:

指定单元,用于通过创建不可变文本对象获取待添加背景的指定文本和用于所述指定文本的背景图片;

界限设定单元,用于对所述指定文本和所述背景图片进行参数构造,获取所述背景图片的界限大小信息;

居中设置单元,用于根据所述界限大小信息将所述背景图片的显示方式设置为居中显示,以及将所述指定文本的对齐方式设置为居中对齐;

绘制单元,用于将所述指定文本绘制到所述背景图片上,获取图文显示信息。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述指定单元包括:

创建所述不可变文本对象;

根据所述不可变文本对待显示的字符串内容进行传入,获取所述指定文本;

根据所述不可变文本对背景资源进行选择,获取所述背景图片。

结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述界限设定单元包括:

将所述指定文本和所述背景图片的对齐方式均设置为垂直居中;

对所述指定文本中文字距离左/右两边缘的间距进行识别,获取边缘间距值;

对所述指定文本中的字体度量参数进行识别,获取文本宽度值和文本高度值;

在所述文本宽度值的基础上增加第一倍数的所述边缘间距值,获取所述背景图片的图片宽度值;

根据所述文本高度值获取所述背景图片的图片高度值;

根据所述图片宽度值和所述图片高度值获取所述界限大小信息。

结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述绘制单元包括:

根据所述指定文本生成目标矩形;

采用绘制文本方法将所述目标矩形绘制到所述背景图片上,获取所述图文显示信息。

结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,其中,所述背景图片的图片格式为可自定义伸缩的格式。

本发明实施例带来了以下有益效果:本发明提供的给文本指定图片的方法及系统,包括:通过创建不可变文本对象获取待添加背景的指定文本和用于指定文本的背景图片,对指定文本和背景图片进行参数构造,获取背景图片的界限大小信息,根据界限大小信息将背景图片的显示方式设置为居中显示,以及将指定文本的对齐方式设置为居中对齐,将指定文本绘制到背景图片上,获取图文显示信息。本发明既能满足给指定文本添加指定背景图片的需求又能节省外部调用的复杂度。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

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

附图说明

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

图1为本发明实施例一提供的给文本指定图片的方法流程图;

图2为本发明实施例一提供的获取界限大小信息的方法流程图;

图3为本发明实施例一提供的获取图文显示信息的方法流程图;

图4为本发明实施例二提供的给文本指定图片的系统示意图。

图标:

100-指定单元;200-界限设定单元;300-居中设置单元;400-绘制单元。

具体实施方式

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

目前,通过textview可以给文本设置指定背景,但是直接设置背景有个明显的缺点是设置的背景针对的是全部文本,不能直接给特定文本设置背景。当然,android中还提供了spannablestring或者spannablestringbuilder用来拓展文本的显示,但是这个背景色仅限于一种样式,显示效果比较单调,实际开发中并不能满足多样化的产品开发需求。通过imagespan在spannablestring或者spannablestringbuilder中设置可以在文本中指定文本替换为添加的图片,但是依然满足不了给指定文本添加指定背景图片的需求。

基于此,本发明实施例提供的给文本指定图片的方法及系统,可以既能满足给指定文本添加指定背景图片的需求又能节省外部调用的复杂度。

为便于对本实施例进行理解,首先对本发明实施例所公开的给文本指定图片的方法进行详细介绍。

实施例一:

图1为本发明实施例一提供的给文本指定图片的方法流程图。

参照图1,给文本指定图片的方法包括如下内容:

步骤s110,通过创建不可变文本对象获取待添加背景的指定文本和用于指定文本的背景图片;

步骤s120,对指定文本和背景图片进行参数构造,获取背景图片的界限大小信息;

创建自定义的不可变文本对象(multiimagespan),multiimagespan继承自imagespan(文本中可添加的图片显示的基类)。multiimagespan为多参数构造函数,包括如下参数设置工具:drawable(所需背景资源)、stringshowcontent(指定待显示背景的文本内容)、verticalalignment(对齐方式)、paint(画笔对象)、intpaddingleftorright(文字距离左/右两边缘的间距)。根据multiimagespan并采用stringshowcontent传入待显示的完整的字符串内容;采用drawable对象在背景资源中选择背景图片,背景图片可以是9patch图,9patch图是android提供的一种可自定义伸缩的图片格式;采用verticalalignment将指定文本和背景图片的对齐方式均设置为垂直居中;采用intpaddingleftorright获取指定文本中文字距离左/右两边缘的边缘间距值;采用paint获取文本宽度值和文本高度值;根据上述的边缘间距值、文本宽度值和文本高度值,计算指定文本的高、宽度和背景图片的高、宽度,进而设置得到背景图片的界限大小信息。

步骤s130,根据界限大小信息将背景图片的显示方式设置为居中显示,以及将指定文本的对齐方式设置为居中对齐;

具体的,为了使背景图片的显示方式为垂直方向和水平方向均居中显示,还需要将背景图片在上下方向上进行画布平移,平移的距离通过计算平移到y轴的坐标值来确定:

y=y+(drawable.getbounds().height()-fontmetrics.bottom+fontmetrics.top)/2,其中,y为draw方法中提供的默认y值,drawable.getbounds().height()为上述的图片高度值,fontmetrics为上述通过getfontmetricsint方法获取的,并且,根据fontmetrics获取fontmetrics.bottom和ontmetrics.top,fontmetrics.bottom为最下字符到基准线的值,ontmetrics.top为最高字符到基准线的值。经过上述步骤实现背景图片的居中显示。

通过paint的settextalign(paint.align.center)方法将指定文本的对齐方式设置为居中对齐,并且与背景图片中心对齐。

这里,并不是按照常规默认的底部对齐来处理,而是采用了将指定文本与背景图片居中对齐,这样能够提高图文对齐的准确度并便于获取边缘间距值、文本宽度值和文本高度值以及图片的图片宽度值和高度值。

步骤s140,将指定文本绘制到背景图片上,获取图文显示信息。

具体的,在指定文本与背景图片中心对齐的基础上,将指定文本绘制到背景图片上。根据指定文本生成文字显示的外部矩形对象的targetrect(目标矩形),接下来通过调用canvas(画布)的drawtext(绘制文本)方法能将文字绘制到图片上,获取图文显示信息。

进一步的,在给文本指定图片的方法中步骤s110,“通过创建不可变文本对象获取待添加背景的指定文本和用于指定文本的背景图片”包括如下内容:

首先,创建不可变文本对象;其次,根据不可变文本对待显示的字符串内容进行传入,获取指定文本;最后,根据不可变文本对背景资源进行选择,获取背景图片。

具体的,所创建的multiimagespan具有drawable、stringshowconten、verticalalignment、paint和intpaddingleftorright五个参数设置工具。其中,采用stringshowconten和drawable来分别获取指定文本和背景图片。

参照图2,在给文本指定图片的方法中步骤s120,“对指定文本和背景图片进行参数构造,获取背景图片的界限大小信息”包括如下内容:

步骤s210,将指定文本和背景图片的对齐方式均设置为垂直居中;

具体的,采用verticalalignment将指定文本和背景图片的对齐方式均设置为垂直居中。

步骤s220,对指定文本中文字距离左/右两边缘的间距进行识别,获取边缘间距值;

具体的,采用intpaddingleftorright对指定文本中文字距离左/右两边缘的间距进行识别,获取指定文本中文字距离左/右两边缘的边缘间距值

步骤s230,对指定文本中的字体度量参数进行识别,获取文本宽度值和文本高度值;

具体的,通过paint的getfontmetricsint(字体度量获取)方法获取字体度量的一些上下左右边缘等参数,以及通过paint的measuretext(度量文本)来测量指定文本的宽度,进而获取文本宽度值和文本高度值。

步骤s240,在文本宽度值的基础上增加第一倍数的边缘间距值,获取背景图片的图片宽度值;

步骤s250,根据文本高度值获取背景图片的图片高度值;

步骤s260,根据图片宽度值和图片高度值获取界限大小信息。

具体的,第一倍数为两倍。文本宽度值加上两倍的边缘间距值即为背景图片的图片宽度值;背景图片的图片高度值在文本高度值的基础上进行微调即可获得。采用drawable的setbounds(边界设定)方法对计算得到的图片宽度值和图片高度值进行设置,确定背景图片的界限大小,获取界限大小信息。

参照图3,在给文本指定图片的方法中步骤s140,“将指定文本绘制到背景图片上,获取图文显示信息”包括如下内容:

步骤s310,根据指定文本生成目标矩形;

步骤s320,采用绘制文本方法将目标矩形绘制到背景图片上,获取图文显示信息。

本实施例通过创建不可变文本对象增加给指定文本内容显示指定背景图片的功能,通过将背景图片、指定文本的整体位置进行居中显示以实现指定文本与背景图片的位置对齐,通过对指定文本和背景图片进行参数构造节省外部调用的复杂度,便于将指定文本绘制到背景图片上。

实施例二:

图4为本发明实施例二提供的给文本指定图片的系统示意图。

本发明实施例还提供了一种给文本指定图片的系统,用于实现上述给文本指定图片的方法。参照图4,给文本指定图片的系统包括如下单元:

指定单元100,用于通过创建不可变文本对象获取待添加背景的指定文本和用于指定文本的背景图片;

界限设定单元200,用于对指定文本和背景图片进行参数构造,获取背景图片的界限大小信息;

居中设置单元300,用于根据界限大小信息将背景图片的显示方式设置为居中显示,以及将指定文本的对齐方式设置为居中对齐;

绘制单元400,用于将指定文本绘制到背景图片上,获取图文显示信息。

进一步的,指定单元100包括:

创建不可变文本对象;

根据不可变文本对待显示的字符串内容进行传入,获取指定文本;

根据不可变文本对背景资源进行选择,获取背景图片。

进一步的,界限设定单元200包括:

将指定文本和背景图片的对齐方式均设置为垂直居中;

对指定文本中文字距离左/右两边缘的间距进行识别,获取边缘间距值;

对指定文本中的字体度量参数进行识别,获取文本宽度值和文本高度值;

在文本宽度值的基础上增加第一倍数的边缘间距值,获取背景图片的图片宽度值;

根据文本高度值获取背景图片的图片高度值;

根据图片宽度值和图片高度值获取界限大小信息。

进一步的,绘制单元400包括:

根据指定文本生成目标矩形;

采用绘制文本方法将目标矩形绘制到背景图片上,获取图文显示信息。

进一步的,背景图片的图片格式为可自定义伸缩的格式。

本发明实施例所提供的给文本指定图片的系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,给文本指定图片的系统实施例部分未提及之处,可参考前述方法实施例中相应内容。

本发明实施例带来了以下有益效果:本发明提供的给文本指定图片的方法及系统,包括:通过创建不可变文本对象获取待添加背景的指定文本和用于指定文本的背景图片,对指定文本和背景图片进行参数构造,获取背景图片的界限大小信息,根据界限大小信息将背景图片的显示方式设置为居中显示,以及将指定文本的对齐方式设置为居中对齐,将指定文本绘制到背景图片上,获取图文显示信息。本发明既能满足给指定文本添加指定背景图片的需求、多样化的产品开发需求又能节省外部调用的复杂度。

本发明实施例还提供一种电子设备,包括存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例提供的给文本指定图片的方法的步骤。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述实施例的给文本指定图片的方法的步骤。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

本发明实施例所提供的进行给文本指定图片的方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

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

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

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

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

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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