一种基于安卓系统的文本渐变方法和系统技术方案

技术编号:15300016 阅读:91 留言:0更新日期:2017-05-12 02:24
本发明专利技术公开了一种基于安卓系统的文本渐变方法和系统,涉及安卓应用领域,包括创建一个ValueAnimator对象,其中ValueAnimator对象的参数包括初始值、目标值和执行时间,将文本控件的初始颜色设为初始值,将需要变化的颜色值设为目标值,设定由初始值变化到目标值的执行时间,添加一监听器获取ValueAnimator对象计算的当前颜色数值,并将当前颜色数值赋予文本控件。不需要重复的调用定时器对象,也不需要额外创建文本控件,并且渐变视觉效果自然。

Text morphing method and system based on Android system

The invention discloses a text gradient method and system based on the Android system, involving Android applications, including the creation of a ValueAnimator object, the ValueAnimator object parameters including initial value, target value and execution time, the initial color text control set as the initial value, will need to change the color value to the target value changes to the target value set, the execution time from the initial value, the value of the current color to add a listener to get the ValueAnimator object and the current calculation, numerical control to give the text color. There is no need to call the timer object repeatedly, and no additional text controls are created, and the gradient vision is natural.

【技术实现步骤摘要】

本专利技术涉及安卓开发领域,具体涉及一种基于安卓系统的文本渐变方法和系统
技术介绍
在Android开发过程中,经常会有一些增加应用交互效果的需求,比如增加一些动画,或高亮显示等。这些应用交互效果基本都是动画交互效果,但是针对文本的交互效果却很少。文字颜色的渐变是深受用户喜爱的文本的交互效果,但是却难以通过代码设置达到文本渐变的效果。通常来说,现有技术通过开启一个定时器对象,设置好数值后每隔一段时间调用一次。但是使用该方法需要计算每次颜色的变化数值,并且还需要将定时器的消息传递到UI线程中执行。还有一种实现文字渐变的方法是创建两个文本控件(TextView),一个文本控件覆盖在另一个上,上面的文本控件为开始的文本颜色,被覆盖的为目标颜色,当需要渐变时,上面的文本控件执行淡出动画,下面的文本控件执行淡入动画,从而达到文本颜色的渐变。但是当上面的文本开始透明时,其显示的颜色其实是上面的颜色和被覆盖文本颜色的叠加,导致文本的颜色不自然。并且该方案额外创建了一个文本控件,会浪费系统资源,也多了一个需要维护状态的对象。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种渐变视觉效果好,节约系统资源的基于安卓系统的文本渐变方法和系统。为达到以上目的,本专利技术采取的技术方案是:一种基于安卓系统的文本渐变方法,创建一个ValueAnimator对象,其中ValueAnimator对象的参数包括初始值、目标值和执行时间,将文本控件的初始颜色设为初始值,将需要变化的颜色值设为目标值,设定由初始值变化到目标值的执行时间,添加一监听器获取ValueAnimator对象计算的当前颜色数值,并将当前颜色数值赋予文本控件。在上述技术方案的基础上,通过调用ValueAnimator对象的addUpdateListener方法添加所述监听器,并使用getAnimatedValue方法获取当前颜色数值。在上述技术方案的基础上,所述文本渐变方法还包括处理变化量冲突的步骤,其包括:定义一个中间对象,所述中间对象用来存储当前颜色数值,若当前的ValueAnimator对象执行过程中用户再次发起文本渐变,则关闭当前的ValueAnimator对象并创建新的ValueAnimator对象,将当前颜色数值设为新的ValueAnimator的初始值。在上述技术方案的基础上,若ValueAnimator对象为不为null,则判断该ValueAnimator对象在执行过程中。在上述技术方案的基础上,所述文本渐变方法还包括添加插值器,所述插值器用于使用三角函数定义执行时间和当前颜色数值之间的关系。在上述技术方案的基础上,所述插值器的公式为:Y=Math.sin(2/Math.PI*x),其中x是当前插值器的单位时间,Y表示当前颜色数值,Math.sin表示三角函数的sin函数,Math.PI表示圆周率数值。在上述技术方案的基础上,使用16进制表示颜色数值。本专利技术还提高一种基于安卓系统的文本渐变系统,包括:对象创建模块,所述对象创建模块用于创建一个ValueAnimator对象,其中ValueAnimator对象的参数包括初始值、目标值和执行时间,将文本控件的初始颜色设为初始值,将需要变化的颜色值设为目标值,设定由初始值变化到目标值的执行时间;监听模块,所述监听模块用于获取ValueAnimator对象计算的当前颜色数值,并将当前颜色数值赋予文本控件。在上述技术方案的基础上,所述系统还包括冲突处理模块,所述冲突处理模块用于定义一个中间对象,所述中间对象用来存储当前颜色数值,若当前的ValueAnimator对象执行过程中用户再次发起文本渐变,则关闭当前的ValueAnimator对象并创建新的ValueAnimator对象,并将当前颜色数值设为新的ValueAnimator的初始值。在上述技术方案的基础上,所述系统还包括插值模块,所述插值模块用于使用三角函数定义执行时间和当前颜色数值之间的关系。与现有技术相比,本专利技术的优点在于:1、本专利技术的通过创建ValueAnimator对象并将ValueAnimator对象与文本控件相关联的方式完成文本的渐变,不需要重复的调用定时器对象,也不需要额外创建文本控件,并且渐变视觉效果自然。2、通过定义用来存储当前颜色数值的中间对象来避免因一个文字渐变未完成是用户发起新的文字渐变导致的颜色错乱。3、通过添加插值器,并使用插值器定义文字颜色数值与执行时间之间关系,使文字颜色的变化更加平滑自然,提高用户体验。附图说明图1为本专利技术基于安卓系统的文本渐变方法流程图;图2为本专利技术基于安卓系统的文本渐变系统示意图。具体实施方式以下结合附图对本专利技术作进一步详细说明。本专利技术一种基于安卓系统的文本渐变方法。本方法使用ValueAnimator对象完成文本颜色的渐变。在Android系统中ValueAnimator对象的作用是数值的变化器,ValueAnimator对象的参数包括一个初始值、一个目标值和执行时间。设定了初始值、目标值和执行时间后,其能在规定之间内将一个数值从初始值增长或减少到目标值。请参考图1,图1为本专利技术基于安卓系统的文本渐变方法流程图,其包括以下步骤:S1:通过ValueAnimator的ofInt方法创建一个ValueAnimator对象,其中ValueAnimator对象的参数包括初始值、目标值和执行时间,将文本控件的初始颜色设为初始值,并使用16进制表示文本颜色数值。将需要变化的颜色值设为目标值,设定由初始值变化到目标值的执行时间,在本实施例中,执行时间选用600毫秒,时间过长的话等待时间变长,会感觉颜色切换的变化率不明显,而太短太快的话,则会感觉不到变化的过程。同时,在第一次创建ValueAnimator对象之后,还需要进行处理变化量冲突的步骤,判断当前是否有之前创建的ValueAnimator对象是否已经执行完,即判断当前是否在进行文本渐变。若第一次创建ValueAnimator对象的名称为a对象,变化量冲突的步骤具体如下:定义一个中间对象m,中间对象m的类型为16进制的颜色数据,中间对象m用来存储当前颜色数值,a对象创建后每次更新都将当前的颜色数值的数据复制给改中间对象m,当用户再发起一次颜色渐变时,会创建一个新的ValueAnimator对象,在创建一个新的ValueAnimator对象时,判断a对象的值是否为null,若a对象的值为null,则a对象已经执行完毕,则可以直接创建新的ValueAnimator对象,若a对象的值不为null,则调用ValueAnimator对象的cannel方法关闭a对象,并将中间对象m中存储的颜色数值设为新的ValueAnimator对象初始值。从而避免了两次颜色渐变之间的无缝对接,避免出现颜色错乱。S2:添加一监听器获取ValueAnimator对象计算的当前颜色数值,并将当前颜色数值赋予文本控件。具体来说,调用ValueAnimator的addUpdateListener方法对其添加一个监听器,通过传入AnimatorUpdateListener的接口实现在onAnimationUpdate方法中回调当前的变化量的ValueAnimator对象,然后在本文档来自技高网...
一种基于安卓系统的文本渐变方法和系统

【技术保护点】
一种基于安卓系统的文本渐变方法,其特征在于:创建一个ValueAnimator对象,其中ValueAnimator对象的参数包括初始值、目标值和执行时间,将文本控件的初始颜色设为初始值,将需要变化的颜色值设为目标值,设定由初始值变化到目标值的执行时间,添加一监听器获取ValueAnimator对象计算的当前颜色数值,并将当前颜色数值赋予文本控件。

【技术特征摘要】
1.一种基于安卓系统的文本渐变方法,其特征在于:创建一个ValueAnimator对象,其中ValueAnimator对象的参数包括初始值、目标值和执行时间,将文本控件的初始颜色设为初始值,将需要变化的颜色值设为目标值,设定由初始值变化到目标值的执行时间,添加一监听器获取ValueAnimator对象计算的当前颜色数值,并将当前颜色数值赋予文本控件。2.如权利要求1所述的一种基于安卓系统的文本渐变方法,其特征在于:通过调用ValueAnimator对象的addUpdateListener方法添加所述监听器,设定一次颜色变化的时间,并使用getAnimatedValue方法获取当前颜色数值。3.如权利要求1所述的一种基于安卓系统的文本渐变方法,其特征在于,所述文本渐变方法还包括处理变化量冲突的步骤,其包括:定义一个中间对象,所述中间对象用来存储当前颜色数值,若当前的ValueAnimator对象执行过程中用户再次发起文本渐变,则关闭当前的ValueAnimator对象并创建新的ValueAnimator对象,将当前颜色数值设为新的ValueAnimator的初始值。4.如权利要求3所述的一种基于安卓系统的文本渐变方法,其特征在于:若ValueAnimator对象为不为null,则判断该ValueAnimator对象在执行过程中。5.如权利要求1所述的一种基于安卓系统的文本渐变方法,其特征在于:所述文本渐变方法还包括添加插值器,所述插值器用于使用三角函数定义执行时间和当前颜色数值之间的关系。...

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

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

1