安卓系统下适配应用通知颜色的方法、装置及计算设备与流程

文档序号:12718834阅读:222来源:国知局
安卓系统下适配应用通知颜色的方法、装置及计算设备与流程

本发明涉及安卓技术领域,特别是涉及安卓系统下适配应用通知颜色的方法、装置及计算设备。



背景技术:

目前,安装有安卓(Andriod)系统的设备发出的通知主要包括系统默认通知和应用通知。其中,系统默认通知是厂商自行定制的,该通知的布局、颜色背景、字体颜色是系统定义好的,因此安卓设备能够正常显示系统默认通知。应用通知则是安装在系统中的应用(APP)发出的自定义通知,该通知的背景颜色、字体颜色由应用方自行设定。

由于厂商在定制安卓系统时,可能会禁止其上安装的应用在弹出通知时修改通知配色,例如禁止修改背景颜色,因此如果应用通知的字体颜色与系统默认通知的背景颜色接近,用户可以无法看清应用通知的内容,影响用户使用体验。例如,安卓手机A的系统默认的通知配色是白底黑字,并限制了其他APP弹出应用通知修改其背景色。如果安装在安卓手机A上的应用B发出的通知的配色是黑底白字,由于系统禁止应用通知自定义背景颜色,使得展示给用户的应用通知为白底白字,用户无法看清该应用通知的内容。

因此,需要一种用于解决安卓系统下上述问题的应用通知颜色适配方案。



技术实现要素:

本发明主要解决的目的在于提供一种安卓系统下的应用通知适配颜色的方法、装置及计算设备,其能够通过构造系统默认通知来获取系统默认的字体或背景颜色,从而为应用通知配置相适应的配色风格,以便于应用通知的内容能够被用户识别。

根据本发明的一个方面,提供了一种安卓系统下适配应用通知颜色的方法,该方法可以包括:构造系统默认通知以获取系统默认的字体或背景颜色;以及选择与字体或背景颜色相适应的配色风格作为应用通知的默认配色风格。

由此,通过构造系统默认通知获取系统默认的字体或背景颜色,可以为应用通知配置相适应的配色风格,以避免由于系统禁止应用修改通知配色而导致的通知背景和字体不匹配问题。

优选地,获取系统默认的字体颜色可以包括:获取系统默认的标题文本颜色作为系统默认的字体颜色。于是可以通过简单获取有代表性的标题文本颜色来作为系统默认的字体颜色,从而简化本发明的配色方案。

优选地,选择与字体或背景颜色相适应的配色风格可以包括:获取至少两个系统通知配色风格;在判定字体或背景颜色与特定系统通知配色风格的字体或背景颜色相似的情况下,选择该特定系统通知配色风格作为应用通知的默认配色风格。由此,可以在系统存在多个配色风格的情况下选择最为合适的配色作为应用通知的默认配色风格。优选地,上述相似性可以通过色彩空间内的距离来判定。

优选地,选择与字体或背景颜色相适应的配色风格包括:在判定字体或背景颜色与纯黑色相似的情况下,选择黑色文字或黑色背景配色风格,否则,选择白色文字或白色配色风格。由此,通过简单地在黑白配色中选择能够进一步简化本发明的配色方案。

优选地,可以根据如下公式判定字体或背景颜色与纯黑色是否相似:

s=(1-diff)/(diff_max),

其中,s是相似度,diff是字体或背景颜色与纯黑色的色差,diff_max是纯黑色与纯白色的色差,并且在s大于0.5时判定字体颜色与纯黑色相似。

根据本发明的另一方面,提供了一种安卓系统下适配应用通知颜色的装置,包括:系统颜色获取单元,用于构造系统默认通知以获取系统默认的字体或背景颜色;以及应用配色选择单元,用于选择与字体或背景颜色相适应的配色风格作为应用通知的默认配色风格。

优选地,系统颜色获取单元获取系统默认的标题文本颜色作为系统默认的字体颜色。

优选地,应用配色选择单元用于:获取至少两个系统通知配色风格;在判定字体或背景颜色与特定系统通知配色风格的字体或背景颜色相似的情况下,选择该特定系统通知配色风格作为应用通知的默认配色风格。

根据本发明的又一方面,提供了一种计算设备,包括:存储器,用于存储信息;连接至存储器的处理器,用于构造系统默认通知以从存储器中获取系统默认的字体或背景颜色;从存储器中选择与字体或背景颜色相适应的配色风格作为应用通知的默认配色风格。

本发明的安卓系统下适配应用通知颜色的方法、装置及计算设备,通过构造默认通知获取系统默认的字体或背景颜色,可以选取相适应的配色风格作为应用的默认配色风格,从而可以避免由于系统禁止应用修改通知配色而导致的通知背景和字体不匹配问题,保证用户体验并确保应用通知对应的相关业务能够正常运行。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1示出了根据本发明一实施例的计算设备的功能框图。

图2示出了根据本发明的安卓系统下适配应用通知颜色的方法的流程示意图。

图3示出了根据本发明的安卓系统下适配应用通知颜色的装置的功能框图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

如前所述,由于厂商在定制安卓系统时,可能会禁止其上安装的应用在弹出通知时修改通知配色,例如禁止应用修改通知背景颜色,因此在代替显示的系统默认通知的背景颜色与应用通知的字体颜色接近的情况下,用户无法看清应用通知的内容,从而影响用户体验。

针对这种情况,本发明提出一种解决方案,即构造一个系统默认通知,并获取系统默认通知的字体或背景颜色,选择与系统默认的字体或背景颜色相适应的配色风格作为应用通知的默认配色风格,以使得字体的颜色与背景颜色不相冲突,便于用户可以清楚的辨认应用通知的内容。

下面将参照图1至图3来具体描述本发明的实施例。图1示出了根据本发明一个实施例的计算设备100的功能框图。计算设备100可以是安装了安卓系统的任何类型的计算设备,优选为移动设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备。

如图1所示,计算设备100可以包括存储器110和处理器120,处理器120连接至存储器110。在本发明的一个实施例中,计算设备100可以包括图1中未示出的诸如显示屏、输入输出装置等的其他部件。上述及其他部件可以例如通过总线彼此相连。应当理解,图1所示的计算设备的功能框图仅仅是出于示例的目的,而不是对本发明范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

存储器110用于存储信息,所述信息可以包括系统默认通知的配色,例如,字体和相应背景颜色。系统默认的字体颜色例如可以是黑色,背景颜色相应为白色等。存储器110中还可以存储任意颜色空间或色域的多种颜色。

处理器120可以构造系统默认通知以从存储器110中获取系统默认的字体或背景颜色。例如,处理器可以包括通知构造单元,该通知构造单元可以生成一个系统默认通知,获得默认通知的布局文件ID,处理器还可以包括布局生成单元,该布局生成单元可以生成对应于已获得的布局文件ID的视图容器,再遍历视图容器的子控件以获取系统默认通知的字体颜色或背景颜色。

处理器120还可以从存储器110中选择与字体或背景颜色相适应的配色风格作为应用通知的默认配色风格。例如,在获取的系统默认通知的字体颜色为黑色时,从存储器110中选择黑色作为应用通知的字体颜色。或者在获取的系统默认的背景颜色为白色时,从存储器中选择与白色有明显差异的例如黑色等颜色作为应用通知的字体颜色,以便于应用通知的字体颜色和系统默认的背景颜色不相冲突,便于用户识别。

由此,应用通知的字体颜色能够与系统默认背景颜色相适应,弹出的应用通知的字体颜色与系统默认通知的背景颜色存在显著差异,使得用户易于辨认,由此确保用户的通知阅读体验。

本领域的技术人员应当理解,上述举例是示意性的而非对本发明的限制,处理器还可以从存储器中选择其它的配色风格作为应用通知的默认配色风格。并且,在处理器获取的系统默认通知的字体或背景颜色为其它颜色时(例如,黑底白字、透明底白字等),也可以选择多种相适应的配色风格作为应用通知的配色风格。

处理器120适配安卓系统下的应用通知颜色的处理可以参见图2。图2示出根据本发明一实施例的适配方法的流程图。

如图2所示,在步骤S210中,构造系统默认通知以获取系统默认的字体或背景颜色。

在安卓系统下,安卓应用消息提醒可以在弹出框中展示通知内容。即,系统可以通过弹出几秒后自动消失的吐司(Toast)方式向用户展示通知内容。为保证用户能够辨认应用通知的内容,应用通知需要适当配色,例如,通知的字体颜色需要与背景颜色相适应,以便为用户提供易于辨认且富有美感的通知。

然而,有些系统会禁止应用自由更改其通知的配色。例如,有些系统会禁止应用修改通知的背景色,这就会导致应用通知实际使用的是应用自行选择的字体颜色和系统默认的背景色。这时,如果字体和背景的颜色相同或相近,会导致通知内容难以辨认。如果字体和背景的颜色虽不相近但不协调,也会使得用户体验下降。为此,需要获知系统默认的通知配色。而所述整体配色可以简单地从其字体或背景颜色来进行推断。

为了实现上述目的,本发明的方案通过构造一个系统默认通知来获知系统的默认通知配色,而不用真的发布上述构造的通知。在一个实施例中,可以通过获知系统默认通知的布局ID以及相应的视图容器,遍历视图容器的子控件来获取系统默认通知的字体颜色或背景颜色。

例如,系统默认通知A可以是由系统提供的例如通知构造器的模块生成的,通过系统默认通知A的内容视图并调用其原生API获得对应的布局ID,使用系统提供的例如布局生成器生成该系统默认通知的布局ID对应的视图容器B,遍历视图容器B的所有子控件,找出所有控件类型为TextView类型的文本控件列表C,遍历文本控件列表C,以获得系统默认通知的字体颜色。

类似地,也可以以类似的方式遍历视图容器B的所有子控件,以获得系统默认通知的背景颜色。

在获知系统默认通知的字体或背景颜色后,可以在步骤S220,选择与系统默认的字体或背景颜色相适应的配色风格作为应用通知的默认配色风格。例如,在获取系统默认的字体的颜色为黑色时,可以选择具有黑色字体的配色风格作为应用通知的默认配色,等等。

本领域的技术人员应当理解,上述举例是示意性的,不应当用以限制本发明,本发明的应用通知的配色方案还可以以其它方式实现。

由于系统默认通知的布局文件里一般存在4个文本控件,分别对应于标题、内容、时间、信息,因此在遍历文本控件列表C的过程中,优选直接根据一个文本控件进行字体颜色判断。这是因为通常难以从多个文本控件中直接获取字体配色信息,而标题作为其中最为显著的文本控件(例如,标题的字体最大,颜色最显眼),可以看做是文本颜色的代表,并认为相应地获取了系统默认字体的颜色。因此,对于步骤S210,还可以优选地获取系统默认的标题文本颜色作为系统默认的字体颜色。

这样,在遍历文本控件列表C时,需要找到系统默认通知标的题所属的文本控件(例如,可以是字体最大的文本控件)D,调用标题文本控件D的原生API,从而获取到标题的文本颜色。

在一个实施例中,在系统存在多种默认配色风格的情况下,可以预先读取这些配色风格,以方便根据在步骤S210中获取的字体或背景颜色来选择与之相适应的配色风格。因此,对于步骤S220,可以获取所有的系统通知配色风格,在判定构造的系统通知的字体或背景颜色与特定系统通知配色风格的字体或背景颜色相同或相似的情况下,选择该特定系统通知配色风格作为应用通知的默认配色风格。例如,在获知构造的系统通知的标题颜色为黑色的情况下,可以选择标题色同为黑色的配色风格。倘若存在一个以上的标题色为黑色的配色风格,则可以进一步比较文本内容色和/或背景色,以选择相似度最大的配色风格。

在这里可以通过引入色彩空的概念来判断颜色的相似性。在一个实施例中,可以通过字体或背景颜色与特定系统通知配色风格的字体或背景颜色在色彩空间内的距离来判定相似。这里的色彩空间可以是RGB空间、CMYK空间等系统实际使用的色彩空间。

具体地,可以通过如下方法判断颜色的相似性。

假定有2种RGB颜色Color1和Color2,可分别将其转换为RGB色彩空间中的2个三维坐标,如Color1转换为(R1,G1,B1),Color2转换为(R2,G2,B2),从而分别得到x,y,z轴的坐标差,即Rx=R1-R2,Gy=G1-G2,Bz=B1-B2。Color1和Color2在色彩空间内的距离可以根据公式diff=sqrt(Rx*Rx+Gy*Gy+Bz*Bz)来算出,其中,sqrt表示二次开方。上述距离可以表示两颜色之间的色差。

由此,可以从获取的系统通知配色风格中选择其背景或字体与步骤S210中获取的背景或字体色差最小的系统通知配色风格作为应用通知的配色风格。

在一个更为简单的方案实施例中,考虑到系统通常默认具备黑底白字和白底黑字这两种配色风格,于是可以在无需预先获取系统通知的配色风格的情况下,简单根据在步骤S210获取的颜色更接近纯黑还是纯白而直接从黑底白字和白底黑字配色风格中进行选择。

例如,可以直接将系统默认通知的字体或背景颜色与纯黑色做比较,将获取的字体或背景颜色作为Color1,纯黑色作为Color2,并根据上述公式算出色差diff。随后,可以利用相似度公式判定获取的系统默认通知的字体或背景颜色与纯黑色是否相似。在这里,由于纯白色(255,255,255)和纯黑色(0,0,0)间的色差最大,因此可以利用纯白色和纯黑色计算出的色差diff_max作为分母,而Color1和Color2计算出的色差为diff,那么相似度s的计算公式为s=(1-diff)/diff_max。相似度取值可以在0~1之间,越接近0表示越不相似,越接近1表示越相似,这里可以取0.5作为临界值,即相似度若大于0.5则认为2个颜色相似,否则认为不相似。于是,在系统默认通知的字体或背景颜色与纯黑色相似的情况下,选择黑色文字或背景的配色风格,否则,选择白色文字或背景的配色风格。

至此,对安卓系统下适配应用通知颜色的方法进行了详细说明。另外,本发明的适配方法也可以由一种适配装置实现。图3示出了根据本发明一实施例的安卓系统下适配应用通知颜色的装置(简称适配装置)的功能框图。其中,适配装置300的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图3所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。

图3所示的适配装置300可以用来实现图2所示的方法,下面仅就适配装置300可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文结合图2的描述,这里不再赘述。

如图3所示,该适配装置300可以包括系统颜色获取单元310和应用配色选择单元320,其中,系统颜色获取单元310可以用于构造系统默认通知以获取系统默认的字体或背景颜色;应用配色选择单元320可以用于选择与字体或背景颜色相适应的配色风格作为应用通知的默认配色风格。由此,发送的应用通知就可以根据系统默认的字体或背景颜色来加载不同颜色的通知布局,解决了不同厂商、不同系统版本的兼容问题。

系统颜色获取单元310可以优选地获取系统默认的标题文本颜色作为系统默认的字体颜色。

应用配色选择单元320可以获取所有的系统通知配色风格,在判定字体或背景颜色与特定系统通知配色风格的字体或背景颜色相同和相似的情况下,选择该特定系统通知配色风格作为应用通知的默认配色风格。应用配色选择单元320也可以直接将获取的颜色与纯黑色或是纯白色相比较,根据获取颜色与纯黑或纯白的相似度,直接从白底黑字和黑底白字的风格中做出选择。

上文中已经参考附图详细描述了根据本发明的安卓系统下适配应用通知颜色的方法、装置及计算设备。如下将以一应用例说明其具体适配过程。

【应用例】

本方案构造了一个系统默认通知的实例,其通过简单获取系统默认通知的标题文本颜色来作为系统默认的字体颜色,并根据字体颜色与纯黑色的相似程度选择白底黑字或是黑底白字的系统配色作为应用通知配色。具体实现过程如下:

1.通过系统提供的通知构造器生成一个系统默认的通知A;

2.通过通知A的内容视图成员(content View)并调用其原生API(getLayoutId)获得对应的系统默认通知布局文件ID;

3.使用系统提供的布局生成器(LayoutInflater,作用是根据布局文件生成视图容器)生成通知A的布局文件ID对应的视图容器B;

4.遍历视图容器B的所有子控件,找出所有控件类型为Text View类型的文本控件列表C;

5.遍历文本控件列表C,找出字体大小最大的文本控件D,该控件就是系统默认通知的标题文本控件;

6.调用标题的文本控件D的原生API(getCurrentTextColor)获取其文本颜色F;

7.通过RGB颜色的色差公式计算纯黑色(0,0,0)与文本颜色F的相似度如果文本颜色F与纯黑色的相似,则加载黑色文字风格的应用通知布局,否则加载白色文字风格的应用通知布局。

本领域的技术人员应当理解,本方案构造了一个系统默认通知的实例,只是构造而不需要真的发送该通知,并且,只构造和获取一次即可。这样之后我们发送应用通知都可以根据系统的标题文本颜色来加载不同的颜色的应用通知布局。

至此,非常完美的实现了颜色的适配,使用户能清晰看到通知展示的内容,进而提高用户体验,确保通知对应的相关业务的正常运行。

对于现有的众多手机生产厂商,其提供的安卓系统存在诸多默认屏蔽应用修改通知配色,尤其是背景颜色的现象。利用本发明的适配方案,能够避免禁止应用修改背景颜色引起的字体和背景颜色混淆的问题,实现应用通知配色风格与系统默认通知的完美适配。另外,该方案是通用的,也能够解决不同厂商、不同系统版本的兼容问题。

此外,根据本发明的方法还可以实现为一种计算机程序,该计算机程序包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。或者,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的上述方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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