应用于终端设备的字体颜色控制方法及相关装置
技术领域
本申请涉及终端设备
技术领域
,特别涉及一种应用于终端设备的字体颜色控制方法及相关装置。背景技术
终端设备可以安装多种应用供用户使用。例如安装观看视频的视频应用、邮件应用、即时通讯应用等。无论何种应用都会采用字符传递一些信息。例如视频应用中对视频的介绍需要字符、邮件应用需要支持文字编辑、即时通讯应用需要支持输入字符等。
故此,文字作为传递信息的重要角色,对终端设备而言,如何控制文字也是很重要的。
相关技术中,有些应用支持自定义文字颜色,但是有些应用不支持定义文字颜色,这样对于用户而言,对文字颜色的管理有些不便,如何提供一种简便的适用于终端设备的文字控制方法尤为重要。
发明内容
本申请的目的是提供一种应用于终端设备的字体颜色控制方法及相关装置,以克服相关技术对文字颜色的管理不便的问题。
第一方面,本申请提供一种应用于终端设备的字体颜色控制方法,所述方法包括:
响应于创建指定应用的画布对象,获取预先配置的字体颜色信息;所述字体颜色信息对多个应用均有效;所述多个应用包括所述指定应用;
在所述画布对象中添加文字对象时,将所述字体颜色信息设置成所述文字对象的字体颜色属性值;
基于所述文字对象的所述字体颜色属性值,在所述画布对象中绘制所述文字对象。
可选的,所述基于所述文字对象的所述字体颜色属性值,在所述画布对象中绘制所述文字对象之后,所述方法还包括:
响应于字体颜色信息的更新消息,重新获取所述字体颜色信息;
基于重新获取的字体颜色信息更新所述画布对象中各文字对象的字体颜色属性值;
响应于屏幕刷新指示,基于各文字对象的字体颜色属性值,在所述画布对象中重新绘制各文字对象。
可选的,配置所述字体颜色信息,包括:
响应于字体颜色配置请求,绘制字体颜色配置界面,其中,所述字体颜色配置界面用于为多个应用统一配置字体颜色;
响应于在所述字体颜色配置界面的用户操作,确定所述字体颜色信息并保存。
可选的,所述颜色配置界面中包括颜色面板,响应于在所述字体颜色配置界面的用户操作,确定所述字体颜色信息,包括:
响应于对所述颜色面板的用户操作,确定所述字体颜色信息。
可选的,所述在所述画布对象中添加文字对象时,将所述字体颜色信息设置成所述文字对象的字体颜色属性值,包括:
调用所述画布对象和所述文字对象之间的颜色设置接口,配置所述文字对象的字体颜色属性值为所述字体颜色信息。
所述基于重新获取的姿态颜色信息更新所述画布对象中各文字对象的字体颜色属性值,包括:
调用所述颜色设置接口,重新配置所述画布对象中各文字对象的字体颜色属性值。
可选的,所述基于所述文字对象的所述字体颜色属性值,在所述画布对象中绘制所述文字对象之前,所述方法还包括:
获取所述指定应用的颜色配置;
确定所述颜色配置指示所述指定应用的字体颜色采用所述字体颜色信息。
可选的,所述方法还包括:
若所述颜色配置指示所述指定应用的字体颜色采用所述指定应用的自定义颜色,则采用所述自定义颜色绘制所述文字对象。
可选的,所述响应于在所述字体颜色配置界面的用户操作,确定所述字体颜色信息并保存之后,所述方法还包括:
触发全局的字体颜色更新事件作为字体颜色信息的更新消息。
第二方面,本申请提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面中任一项所述的应用于终端设备的字体颜色控制方法。
第三方面,本申请还提供一种计算机存储介质,其上存储有计算机程序,该程序被处理单元执行时实现第一方面任一所述方法的步骤。
第四方面,本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的方法。
另外,第二方面至第四方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
申请实施例支持对多个应用统一设置字体颜色信息,便于用户控制字体颜色。且对于每个画布对象,仅需在创建该画布对象时,读取一次字体颜色信息,然后将字体颜色信息为文字对象的变量即字体颜色属性赋值,可以将一次获取的字体颜色信息传递给该画布对象的多个文字对象,能够有效降低读取字体颜色信息的次数,节约终端设备的功耗。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请一个实施例的终端设备的结构示意图;
图2为根据本申请一个实施例的终端设备的软件架构的示意图;
图3-图6为根据本申请实施例提供的界面示意图;
图7为根据本申请实施例提供的文字对象和界面之间的关系示意图;
图8为根据本申请一个实施例的应用于终端设备的字体颜色控制方法的流程示意图;
图9为根据本申请一个实施例的文字对象的描述信息的示意图;
图10为根据本申请一个实施例的应用于终端设备的字体颜色控制方法的又一流程示意图;
图11为根据本申请一个实施例的应用于终端设备的字体颜色控制方法的又一流程示意图;
图12为根据本申请一个实施例的应用于终端设备的字体颜色控制方法的另一流程示意图;
图13为根据本申请一个实施例的应用于终端设备的字体颜色控制方法的又一流程示意图;
图14为根据本申请一个实施例的应用于终端设备的字体颜色控制方法的又一流程示意图;
图15为根据本申请一个实施例的应用于终端设备的字体颜色控制方法的又一流程示意图;
图16为根据本申请一个实施例的应用于终端设备的字体颜色控制方法中误伤效果和期望效果的对比图;
图17示例性示出了本申请实施例提供的一种终端设备结构的另一示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。其中,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
并且,在本申请实施例的描述中,除非另有说明,″/″表示或的意思,例如,A/B可以表示A或B;文本中的″和/或″仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,″多个″是指两个或多于两个。
以下,术语″第一″、″第二″仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有″第一″、″第二″、的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,″多个″的含义是两个或两个以上。
相关技术中有些应用支持单独改变自身的字体颜色,有些应用不支持改变自身的颜色。当用户期望系统内所有应用或多个应用的字体颜色统一时,该需求无法被满足。而且,逐个设置应用的字体颜色也操作繁琐、多有不便。故此,如何能够便捷的控制字体颜色有待解决。
为解决该技术问题,本申请提供的技术方案中支持为多个应用统一设置字体颜色。而且,本申请提供的方案能够有效的利用终端设备的功耗,降低因为字体颜色变更带来的大量增加功耗和占用处理资源的问题。
下面结合附图,对本申请提供的应用于终端设备的字体颜色制方法进行说明。
首先,图1示出了一种终端设备100的结构示意图。
下面以终端设备100为例对实施例进行具体说明。应该理解的是,图1所示终端设备100仅是一个范例,并且终端设备100可以具有比图1中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
图1中示例性示出了根据示例性实施例中终端设备100的硬件配置框图。如图1所示,终端设备100包括:射频(radio frequency,RF)电路110、存储器120、显示单元130、摄像头140、传感器150、音频电路160、无线保真(Wireless Fidelity,Wi-Fi)模块170、处理器180、蓝牙模块181、以及电源190等部件。
RF电路110可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器180处理;可以将上行数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等器件。
存储器120可用于存储软件程序及数据。处理器180通过运行存储在存储器120的软件程序或数据,从而执行终端设备100的各种功能以及数据处理。存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器120存储有使得终端设备100能运行的操作系统。本申请中存储器120可以存储操作系统及各种应用程序,还可以存储执行本申请实施例所述方法的程序代码。
显示单元130可用于接收输入的数字或字符信息,产生与终端设备100的用户设置以及功能控制有关的信号输入,具体地,显示单元130可以包括设置在终端设备100正面的触摸屏131,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
显示单元130还可用于显示由用户输入的信息或提供给用户的信息以及终端设备100的各种菜单的图形用户界面(graphical userinterface,GUI)。具体地,显示单元130可以包括设置在终端设备100正面的显示屏132。其中,显示屏132可以采用液晶显示器、发光二极管等形式来配置。显示单元130可以用于显示本申请中字体颜色配置界面,实现对多个/所有应用的字体颜色的统一配置。
其中,触摸屏131可以覆盖在显示屏132之上,也可以将触摸屏131与显示屏132集成而实现终端设备100的输入和输出功能,集成后可以简称触摸显示屏。本申请中显示单元130可以显示应用程序以及对应的操作步骤。
摄像头140可用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器180转换成数字图像信号。
终端设备100还可以包括至少一种传感器150,比如加速度传感器151、距离传感器152、指纹传感器153、温度传感器154。终端设备100还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
音频电路160、扬声器161、麦克风162可提供用户与终端设备100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出。终端设备100还可配置音量按钮,用于调节声音信号的音量。另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至RF电路110以发送给比如另一终端设备,或者将音频数据输出至存储器120以便进一步处理。本申请中麦克风162可以获取用户的语音。
Wi-Fi属于短距离无线传输技术,终端设备100可以通过Wi-Fi模块170帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。
处理器180是终端设备100的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器120内的软件程序,以及调用存储在存储器120内的数据,执行终端设备100的各种功能和处理数据。在一些实施例中,处理器180可包括一个或多个处理单元;处理器180还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器180中。本申请中处理器180可以运行操作系统、应用程序、用户界面显示及触控响应,以及本申请实施例所述的字体颜色控制方法。另外,处理器180与显示单元130耦接。
蓝牙模块181,用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端设备100可以通过蓝牙模块181与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
终端设备100还包括给各个部件供电的电源190(比如电池)。电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电以及功耗等功能。终端设备100还可配置有电源按钮,用于终端设备的开机和关机,以及锁屏等功能。
图2是本申请实施例的终端设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿、短信息等。
视图系统包括可视控件,例如显示拍照控件、显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括用于采集图像的应用的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。
通知管理器使应用程序可以在状态栏中显示通知信息(例如短信息的消息摘要,消息内容),可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D(一种动画方式)图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
本申请实施例中的终端设备100可以为手机、平板电脑、可穿戴设备、笔记本电脑以及电视等。
相关技术中如果单独设置一个应用的字体颜色,则终端设备的界面风格不统一。如图3所示,如果仅修改了时间控件应用的字体颜色,那么时间控件的应用颜色为第一颜色,其他应用图标,例如图3中的第一应用图标、第二应用图标等的字体颜色均为第二颜色。无法做到界面风格统一。
为便于管理字体颜色,本申请实施例中可从颜色的设置以及字体颜色展示两部分内容介绍本申请实施例提供的字体颜色控制方法。
一、字体颜色设置
为便于统一设置多个应用的字体颜色,本申请实施例提供了字体颜色设置功能。该功能能够实现对系统所有/或部分应用的字体颜色进行统一设置。
如图4所示,对于终端设备而言,其设置功能支持系统级别的设置。例如设置功能支持调整终端设备的亮度、支持开启或关闭蓝牙功能、支持开启或关闭wifi功能、支持隐私数据保护功能等、支持系统界面的主题风格的设置等。
故此,如图4所示本申请实施例提供的字体颜色设置功能集成到终端设备的设置功能中。如图4所示,用户可以选择字体颜色设置功能,然后进入如图5所述的字体颜色配置界面。在该字体颜色配置界面中,基于用户选择操作可以展示颜色面板。颜色面板中具有多种颜色供用户选择。然后基于用户在颜色面板的操作,确定应用的字体颜色信息。由于颜色面板能够直观的显示出颜色,便于用户操作选择自己喜欢的字体颜色。
此外,如图5所示,在字体颜色配置界面中可以默认用户设置的字体颜色信息对系统内安装的所有应用均有效。即支持所有应用使用在字体颜色配置界面中设置的字体颜色。也可以设置是否″对所有应用生效″的开关。当设置为″开″时,表示对所有应用均生效。当设置为″关″时表示仅对部分应用生效。
当然,为了便于确定对哪部分应用生效,如图5所示,本申请实施例中,可以由用户对应用进行分组,然后为不同的分组设置各分组的字体颜色信息。例如用户有n个应用,根据用户的操作习惯,可以将这些应用的应用图像统一归类到一个文件夹下。如图6所示,终端设备的界面中包括两个文件夹,其中第一文件夹用于存储购物类的应用的应用图标。用户进入第一文件夹之后,可以选择其中一个应用图标,启动该应用图标对应的购物应用进行购物。第二文件夹中用于存储金融类应用,不同银行的应用图标或理财类应用的应用图标都可以归类到第二文件夹中。用于进入第二文件夹可以选择相应的应用图标启动相应的应用。
故此,在实施时,如图5所示可以根据用户的文件夹来初步划分不同的应用分组。推荐给用户,以便于用户选择一个文件夹作为设置字体颜色的一个分组。例如,用户选择第一文件夹实现对第一文件夹内所有应用的字体颜色的统一设置。用户还可以选择第一文件夹和第二文件夹,实现对第一文件夹和第二文件夹内所有应用的字体颜色的统一设置。用户还可以选择一个或多个应用,实现对选择的所有的应用的字体颜色的统一设置。用户还可以选择至少一个文件夹以及至少一个应用,实现对选择的文件夹内的所有应用,以及未设置在文件夹内的应用的统一设置。
当然,为了便于确定选择了哪些应用可以如图5所示,在″选择结果预览″区域展示用户选择的文件夹和/或应用。如果″选择结果预览″区域展示文件夹,用户选择任一文件夹还可以查看该文件夹内包括哪些应用,并对该文件夹内的应用进行增删处理。
需要说明的是,本申请实施例不限制对应用的分组的方式和方法,只要能够实现对哪些应用进行统一设置字体颜色均适用于本申请实施例。
此外,还需要说明的是,除了在设置功能中增加字体颜色设置功能,本申请实施例中,还可以将字体颜色设置功能作为一个独立的应用安装在终端设备中。
在用户对多个应用统一设置了字体颜色信息之后,为了实现对多个应用生效。本申请实施例中将用户配置的字体颜色信息作为一个文字属性存储起来可支持这些应用读取。
例如,各个应用在绘制界面的过程中可以读取这个文字属性,然后可以得知字体的显示颜色。
如果这个文字属性仅对部分应用生效,则这个文字属性中不仅可以记录字体颜色信息还可以记录生效的应用。由此,各个应用可确定使用哪个字体颜色。
二、字体颜色展示
如图7所述,用户看到的界面中可能包括多个应用,例如包括应用1、应用2直至应用n。每个应用又可以包括多个界面,例如界面1、界面2...界面n。每个界面中可能包括多个文字对象,如文字对象1、文字对象2...文字对象n。如果每个文字对象都读取一次用户配置的文字颜色信息,意味着每个文字对象的每次界面刷新都要获取一次文字属性中的文字颜色信息。如果是动态文字,刷新率可以达到每秒20次以上,则每秒要不断的重复获取文字属性中的文字颜色信息,这样容易损耗终端设备的电能,还容易致使系统卡死崩溃。
故此,本申请实施例中为了有效的利用终端设备的功耗,降低因为字体颜色变更带来的大量增加功耗和占用处理资源的问题。本申请提供了优化方案,下面对优化的方式进行说明:
文字对象要最终绘制出来,是通过Canvas画布对象进行操作的,而要绘制的文字对象的描述信息,则是由Paint进行记录,因此前文中界面1创建文字对象进行显示的过程,实际上是创建了对应文字对象的Paint描述信息,并由Canvas画布完成最后的统合绘制。Canvas画布创建完成后,当文字对象变化时,仅是Paint描述对象变化,Canvas不会再变,因此,本申请中将读取文字属性中的字体颜色信息过程放在Canvas的创建流程中,可以确保字体颜色更新后,不会因为文字对象Paint的频繁变化而频繁读取文字属性。
本申请实施例提供的方案中文字对象新增字体颜色属性,通过在展示文字对象阶段,将该字体颜色属性的属性值动态的设置为用户设置的字体颜色信息,可有效降低读取文字颜色信息这一属性的次数,降低终端设备的功耗。
鉴于此,本申请实施例在文字对象的Paint描述信息中新增字体颜色属性。在创建画布对象时读取一次字体颜色信息,然后动态的设置给需要在该画面对象中展示的各文字对象。实现同一画布对象的多个文字对象可共享画布对象读取的字体颜色信息。由此,文字对象的字体颜色属性作为变量可以被画布对象赋值,画布对象读取一次字体颜色信息来代替为不同的文字对象分别读取一次字体颜色信息。达到减少读取字体颜色信息的次数的目的来节约功耗。
下面以一个应用展示文字为例进行说明,如图8所示,为字体颜色控制方法的流程示意图,包括以下步骤:
在步骤801中,响应于创建指定应用的画布对象,获取预先配置的字体颜色信息;字体颜色信息对多个应用均有效;多个应用包括指定应用;
在步骤802中,在画布对象中添加文字对象时,将字体颜色信息设置成文字对象的字体颜色属性值;
在步骤803中,基于文字对象的字体颜色属性值,在画布对象中绘制文字对象。
由此,本申请实施例支持对多个应用统一设置字体颜色信息,便于用户控制字体颜色。且对于每个画布对象,仅需在创建该画布对象时,读取一次字体颜色信息,然后将字体颜色信息为文字对象的变量即字体颜色属性赋值,可以将一次获取的字体颜色信息传递给该画布对象的多个文字对象,能够有效降低读取字体颜色信息的次数,节约终端设备的功耗。
如图9所示,在文字对象的Paint描述信息中原有的属性包括字库属性、字体大小属性、原颜色属性等,本申请实施例中在Paint描述信息新增字体颜色属性。该属性可支持采用颜色设置接口随时进行更新。
例如图9所示,左图示出了Paint描述信息的属性,右图示出了各属性对应的接口。例如字库属性采用Paint描述信息原有的字库属性接口进行定义字体大小属性采用Paint描述信息原有的字体大小属性接口进行定义,文字对象的原来的颜色通过原颜色属性接口定义原颜色属性。本申请实施例中新增的字体颜色属性可采用本申请实施例新增的颜色设置接口进行更新。其中,原颜色属性和原颜色属性接口用于供应用自定义字体颜色,例如,用户自定义时钟应用的字体颜色为A颜色时,可基于用户操作调用原颜色属性接口为原颜色属性赋值为A颜色值。本申请实施例新增的颜色设置接口用于更改字体颜色。
故此,在创建画布对象时,可以一次读取文字属性中的字体颜色信息之后,通过颜色设置接口设置给需要展示的文字对象。
综上,文字对象的创建流程中进行字体颜色控制的流程可如图10所示。
在步骤1001中,创建画布对象Canvas。
在步骤1002中,获取文字属性中的字体颜色信息。
在步骤1003中,通过颜色设置接口文字颜色信息记录到各个文字对象的Paint描述信息的字体颜色属性中。
在步骤1004中,等待界面刷新。
在步骤1005中,界面刷新时,开始在画布对象中以及字体颜色属性值绘制文字对象。然后,可以等待下次界面刷新。之后界面刷新时,只需要根据已有的Paint中的颜色属性值绘制文字对象即可,无需重复读取文字属性中的字体颜色信息。
至此,实现了获取一次文字属性中的字体颜色信息,然后设置给各个文字对象。在界面刷新时,实现了依据该字体颜色信息显示各个文字对象的字体。
综上所述,在上面一个步骤中已经将文字属性中的字体颜色信息转成了文字对象的Paint描述信息的内部参数,因此对用户自定义颜色的获取变成了内部变量的获取,能够有效解决性能问题,避免终端设备崩溃,并能够节约功耗。
上面介绍了画布对象创建阶段如何基于用户设置的字体颜色信息展示文字对象的字体颜色。但是当已经具有创建的界面,之后用户更新字体颜色信息是,已经创建的界面若不销毁将会继续使用旧的颜色展示文字。为了解决这个问题,下面针对已经创建的画布对象如何基于用户的设置而更新进行说明,如图11所示,包括以下步骤:
本申请实施例中,每次字体颜色新更新产生更新消息。实施时,每次基于用户操作设置字体颜色信息之后,可以触发全局的字体颜色更新事件作为字体颜色信息的更新消息。这个更新事件能够被各个应用监听到,被已创建界面的画布对象监听到。
例如,在Canvas对象中添加一个更新接口,举例为updatePaintCoIor(),然后在用户设置字体颜色后,在系统中触发一个全局的configChange事件。ConfigChange事件是Android系统用来触发所有应用包括界面进行参数更新的全局事件。当满足一定条件后,该事件就会造成当前已存在的界面进行重新绘制。在重新绘制的时候,可通过调用Canvas.updatePaintColor(),让Canvas对象主动触发对Paint对象的字体颜色属性CustColer的更新。
由此,在步骤1101中,响应于字体颜色信息的更新消息,重新获取字体颜色信息。
在步骤1102中,基于重新获取的字体颜色信息更新画布对象中各文字对象的字体颜色属性值。
实施时,如图9所示,可调用颜色设置接口,重新配置画布对象中各文字对象的字体颜色属性值。
由此,对于已经创建的界面,可借助更新消息,重新获取文字属性中的字体颜色信息,然后通过颜色设置接口,更新画布对象中已经渲染的各文字对象的字体颜色属性值。
然后,在步骤1103中,响应于屏幕刷新指示,基于各文字对象的字体颜色属性值,在画布对象中重新绘制各文字对象。
也即,随着界面刷新,可以采用新的字体颜色信息展示已经展示的字体颜色。实现对已创建界面中的字体的颜色的更新。
综上所述,对已创建界面的字体颜色同步更新展示流程可如图12所示:
在步骤1201中,基于用户操作,修改字体颜色信息并保存。
在步骤1202中,触发颜色更新事件。
在步骤1203中,基于颜色更新事件,画布对象重新获取文字属性中的字体颜色信息。
在步骤1204中,通过颜色设置接口,设置画布对象中已创建的文字对象的字体颜色属性的属性值为字体颜色信息。
在步骤1205中,等待界面刷新。
在步骤1206中,界面刷新时,基于文字对象的字体颜色属性的属性值重新绘制已显示的字体颜色。
综上所述,字体颜色信息的更新流程也在用户变更色值后读取一次字体颜色信息即可实现对已展示文字对象的颜色刷新。这样,每次更新,每个Canvas只需要读取一次文字属性的字体颜色信息,且在后续界面刷新中不需要重复获取,可节约终端设备的功耗,避免终端设备崩溃。
无论是画布对象的创建还是对字体颜色信息的更新,都能够及时获取字体颜色信息,使得统一设置字体颜色的应用能够使用用户配置的字体颜色。
本申请实施例中,为了进一步保留各个应用对字体颜色使用的灵活性,允许不同应用单独设置字体颜色,而不受统一设置的字体颜色的影响。故此,本申请实施例中增加了颜色替换流程,以便于判断字体最终采用何种颜色进行展示。
如图13所示,为字体替换流程的示意图,在绘制文字对象过程中,包括以下步骤:
在步骤1301中,获取指定应用的颜色配置;
在步骤1302中,确定颜色配置是否指示指定应用的字体颜色采用字体颜色信息,若是执行步骤1303,若否执行步骤1304。
在步骤1303中,采用统一设置的字体颜色信息展示指定应用的文字对象。
在步骤1304中,采用指定应用的自定义颜色展示指定应用的文字对象。
由此,本申请实施例中,最终展示文字对象之前,可以判定是采用统一配置的字体颜色信息还是应用的自定义颜色。由此,可以遵照各个应用的单独设置。
该颜色配置可以为图9中原颜色属性接口设置的原颜色属性,如果原颜色属性有自定义的值,说明该指定应用具有自己的用户自定义字体颜色,否则,可确定指定应用没有用户自定义字体颜色。
实施时,还可以在Paint描述信息中添加内部变量颜色配置指示mColorSet,初始值为false。当原生setColor接口(即应用单独设置的字体颜色定义接口)被调用的时候,将mColorSet值改为true。
当绘制流程开始时,首先判断mColorSet值是否为true,若为true,代表该Paint描述信息已经被应用自定义过字体颜色,接下来的文字绘制,使用应用通过setColor设置的颜色进行绘制。若为false,代表该Paint描述信息未被应用自定义过字体颜色,接下来的文字绘制,使用前文中颜色设置接口设置的颜色进行绘制。
如图14所示,为对图10所示的流程的补充,其中,步骤1001-步骤1004均与图10相同,不同之处在于步骤1105及其之后的操作,如图14所示:
在步骤1001中,创建画布对象Canvas。
在步骤1002中,获取文字属性中的字体颜色信息。
在步骤1003中,通过颜色设置接口文字颜色信息记录到各个文字对象的Paint描述信息的字体颜色属性中。
在步骤1004中,等待界面刷新。
在步骤1005中,界面刷新时,读取颜色配置指示mColorSet。
在步骤1006中,若颜色配置指示mColorSet为false,则采用统一设置的字体颜色信息展示指定应用的文字对象。
在步骤1007中,若颜色配置指示mColorSet为ture,则采用指定应用的自定义颜色展示指定应用的文字对象。
之后,每次界面刷新,只要文字属性中的字体颜色不改变,均无需重复读取文字属性。
类似的,如图15所示,在用户更新字体颜色信息后,对已创建界面的处理流程示意图。图15所示的流程是对图12所示的流程的补充,步骤1201-步骤1205的操作均与图12相同,不同之处在于步骤1206及其之后的操作,如图15所示:
在步骤1201中,基于用户操作,修改字体颜色信息并保存。
在步骤1202中,触发颜色更新事件。
在步骤1203中,基于颜色更新事件,画布对象重新获取文字属性中的字体颜色信息。
在步骤1204中,通过颜色设置接口,设置画布对象中已创建的文字对象的字体颜色属性的属性值为字体颜色信息。
在步骤1205中,等待界面刷新。
在步骤1206中,界面刷新时,读取颜色配置指示mColorSet。
在步骤1207中,若颜色配置指示mColorSet为false,则采用统一设置的字体颜色信息展示指定应用的文字对象。
在步骤1208中,若颜色配置指示mColorSet为ture,则采用指定应用的自定义颜色展示指定应用的文字对象。
之后,每次界面刷新,只要文字属性中的字体颜色不改变,均无需重复读取文字属性。
如图16所示,界面中包括时间控件,第一应用和第二应用。初始时候界面的显示效果如图16中左侧图所示,时间控件、第一应用和第二应用的颜色相同。若用户在设置界面中对所有应用配置了第一颜色,之后,用户单独设置时间控件应用为第二颜色。如图16右侧的下图所示,为用户期望的显示效果,即第一应用和第二应用的字体采用第一颜色,时间控件应用采用第二颜色。如果在颜色替换流程中不识别各个应用是否单独设置字体颜色,会导致对时间控件的字体颜色也为第一颜色。误伤效果如图16中右侧的上图所示,时间控件、第一应用和第二应用均采用第一颜色,导致误伤时间控件的字体颜色。故此,引入本申请实施例中的方案,能够在替换字体颜色时,主动识别出时间控件有自己的自定义颜色,故此不对时间控件的字体颜色进行替换。最终能够按照期望效果显示。
本申请实施例提供的方案对任何字库都适用,即使用户更换了字库,由于字体颜色最终在系统层按照设置或应用自定义的方式显示,故此,本申请的方案能够使用所有字库。
综上,本申请实施例提供的字体颜色控制方法,能够统一设置多个应用甚至所有应用的字体颜色,也能够兼顾不同应用的字体颜色需求,还能够节约终端设备的功耗,缓解不断读取字体颜色信息带来的性能问题。
基于相同的发明构思,本申请实施例还提供一种终端设备,如图17所示,包括处理器1701;
用于存储所述处理器可执行指令的存储器1702;
其中,所述处理器被配置为执行所述指令,以实现:
响应于创建指定应用的画布对象,获取预先配置的字体颜色信息;所述字体颜色信息对多个应用均有效;所述多个应用包括所述指定应用;
在所述画布对象中添加文字对象时,将所述字体颜色信息设置成所述文字对象的字体颜色属性值;
基于所述文字对象的所述字体颜色属性值,在所述画布对象中绘制所述文字对象。
可选的,执行所述基于所述文字对象的所述字体颜色属性值,在所述画布对象中绘制所述文字对象之后,所述处理器还被配置为:
响应于字体颜色信息的更新消息,重新获取所述字体颜色信息;
基于重新获取的字体颜色信息更新所述画布对象中各文字对象的字体颜色属性值;
响应于屏幕刷新指示,基于各文字对象的字体颜色属性值,在所述画布对象中重新绘制各文字对象。
可选的,执行配置所述字体颜色信息,所述处理器被配置为:
响应于字体颜色配置请求,绘制字体颜色配置界面,其中,所述字体颜色配置界面用于为多个应用统一配置字体颜色;
响应于在所述字体颜色配置界面的用户操作,确定所述字体颜色信息并保存。
可选的,所述颜色配置界面中包括颜色面板,执行响应于在所述字体颜色配置界面的用户操作,确定所述字体颜色信息,所述处理器被配置为:
响应于对所述颜色面板的用户操作,确定所述字体颜色信息。
可选的,执行所述在所述画布对象中添加文字对象时,将所述字体颜色信息设置成所述文字对象的字体颜色属性值,所述处理器被配置为:
调用所述画布对象和所述文字对象之间的颜色设置接口,配置所述文字对象的字体颜色属性值为所述字体颜色信息。
所述基于重新获取的姿态颜色信息更新所述画布对象中各文字对象的字体颜色属性值,包括:
调用所述颜色设置接口,重新配置所述画布对象中各文字对象的字体颜色属性值。
可选的,执行所述基于所述文字对象的所述字体颜色属性值,在所述画布对象中绘制所述文字对象之前,所述处理器还被配置为:
获取所述指定应用的颜色配置;
确定所述颜色配置指示所述指定应用的字体颜色采用所述字体颜色信息。
可选的,所述处理器还被配置为:
若所述颜色配置指示所述指定应用的字体颜色采用所述指定应用的自定义颜色,则采用所述自定义颜色绘制所述文字对象。
可选的,执行所述响应于在所述字体颜色配置界面的用户操作,确定所述字体颜色信息并保存之后,所述处理器还被配置为:
触发全局的字体颜色更新事件作为字体颜色信息的更新消息。
由于本申请实施例中的计算机存储介质可以应用于上述方法,因此,其所能获得的技术效果也可参考上述方法实施例,本申请的实施例在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。