五、ValueAnimator属性动画高级进阶(二)
来源:互联网 发布:吉他谱软件 编辑:程序博客网 时间:2024/05/28 19:23
ofObject()概述
ofInt()只能传入Integer类型的值,而ofFloat()则只能传入Float类型的值。那如果我们需要操作其它类型的变量要怎么办呢?其实ValueAnimator还有一个函数ofObject(),可以传进去任何类型的变量,定义如下:
public static ValueAnimatorofObject(TypeEvaluator evaluator, Object... values);
它有两个参数,第一个是自定义的Evaluator,第二个是Object类型的可变长参数;为什么要强制传进去自定义的Evaluator?首先,大家知道Evaluator的作用是根据当前动画的显示进度,计算出当前进度下对应的值。那既然Object对象是我们自定的,那必然从进度到值的转换过程也必须由我们来做,不然系统哪知道你要转成个什么鬼。
先看看例子:
public class MyCharsEvaluatorimplements TypeEvaluator<Character> { @Override public Character evaluate(float v, Character characterStart, Character characterEnd) { intstart = (int)characterStart; intend = (int)characterEnd; intresult = (int)(start + v*(end - start)); char cha = (char)result; return cha; }}
在Activity中:
mValueAnimator= mValueAnimator.ofObject(new MyCharsEvaluator(), new Character('A'), new Character('Z'));mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimatorvalueAnimator) { char value = (char) valueAnimator.getAnimatedValue(); mTvTestObject.setText("设置新的value值:" + value); }});mValueAnimator.setDuration(2000);mValueAnimator.setInterpolator(new AccelerateInterpolator());mValueAnimator.start();
在这里,我们就利用A-Z字符在ASCII码表中对应数字是连续且递增的原理,先求出来对应字符的数字值,然后再转换成对应的字符。
阅读全文
0 0
- 五、ValueAnimator属性动画高级进阶(二)
- Android自定义控件:动画类(七)----属性动画ValueAnimator高级进阶(二)
- 属性动画2:ValueAnimator高级进阶(一)
- 四、ValueAnimator属性动画高级进阶(一)
- 自定义控件三部曲之动画篇(五)——ValueAnimator高级进阶(一)
- Animation动画详解(五)——ValueAnimator高级进阶(一)
- Animation动画详解(五)——ValueAnimator高级进阶(一)
- 自定义控件三部曲之动画篇(五)——ValueAnimator高级进阶(一)
- 自定义控件三部曲之动画篇(五)——ValueAnimator高级进阶(一)
- 属性动画二--ValueAnimator
- 自定义控件三部曲之动画篇(六)——ValueAnimator高级进阶(二)
- Animation动画详解(六)——ValueAnimator高级进阶(二)
- Animation动画详解(六)——ValueAnimator高级进阶(二)
- 自定义控件三部曲之动画篇(六)——ValueAnimator高级进阶(二)
- 自定义控件三部曲之动画篇(六)——ValueAnimator高级进阶(二)
- (4.1.23.7) 自定义控件三部曲之动画篇(五)——ValueAnimator高级进阶(一)
- (4.1.23.8)自定义控件三部曲之动画篇(六)——ValueAnimator高级进阶(二)
- Android 属性动画(二):ObjectAnimator与ValueAnimator
- 经典SQL语句大全
- PHP 日期,时间函数(date,time)
- python—字符串string
- dubbo监控中心的安装
- linux高性能服务器编程学习笔记二:IP协议详解
- 五、ValueAnimator属性动画高级进阶(二)
- 使用Rman将Windows Oracle 11gR2 32位中数据库恢复至Windows Oracle 11gR2 64位 与 centos 6.5 Oracle 11gR2 32位
- 1052. 卖个萌 (20)
- php-mpos
- python 手记10 『笨方法学python 习题31』
- 习题6.15
- group_concat函数使用实例,mysql查询结果自动以,连接成字符串
- mediaproxy和rtpproxy原理
- 第12周 【项目四】 拓扑排序算法验证