没有合适的资源?快使用搜索试试~ 我知道了~
这篇文章来总结下属性动画,通过下面几点来了解下属性动画的内容: 属性动画概述 属性动画工作原理 ValueAnimator ObjectAnimator ValueAnimator和ObjectAnimator区别 插值器 估值期 插值器和估值期的区别 一.概述 1.特性 属性动画是API 11新加入的特性,相比于View动画只作用在视图View上,它对作用对象进行了扩展,属性动画可以对任何对象做动画,甚至可以没有对象.除了作用对象进行了扩展以外,属性动画的效果也得到了加强,不再像View动画那样只能支持四种简单的变换.另外View动画没有改变View的属性,只是改变了视觉效果.而属性动画是通
资源推荐
资源详情
资源评论
Android动画探索之属性动画动画探索之属性动画
这篇文章来总结下属性动画,通过下面几点来了解下属性动画的内容:
属性动画概述
属性动画工作原理
ValueAnimator
ObjectAnimator
ValueAnimator和ObjectAnimator区别
插值器
估值期
插值器和估值期的区别
一一.概述概述
1.特性特性
属性动画是API 11新加入的特性,相比于View动画只作用在视图View上,它对作用对象进行了扩展,属性动画可以对任何对象做动画,甚至可以没有对象.除了作用对象进行了
扩展以外,属性动画的效果也得到了加强,不再像View动画那样只能支持四种简单的变换.另外View动画没有改变View的属性,只是改变了视觉效果.而属性动画是通过改变对
象的属性来实现动画效果.
2.核心类核心类
//载入xml动画
Animator animator = AnimatorInflater.loadAnimator(this, R.animator.animator_bt);
//设置动画对象
animator.setTarget(view);
//开启动画
animator.start();
注意:实际开发中,建议使用代码的方式实现属性动画,因为很多属性的初始值无法提前确定,只能代码动态获取。
2.ValueAnimator.ofFloat(float… values)
(1)概念:
将初始值以浮点型数值的形式过渡到结束值,即估值器是浮点估值器(FloatEvaluator)
(2)具体实现
其可以通过xml和代码的方式来实现,使用细节和ValueAnimator.ofInt()类型,这里就不多说了。
3.ValueAnimator.ofObject(TypeEvaluator evaluator, Object… values)
(1)概念
初始值以对象的的形式过渡到结束值。
(2)具体使用
//步骤一:创建初始动画时的对象&创建结束动画时对象
MyObject myObject1 = new MyObject();
MyObject myObject2 = new MyObject();
//步骤二:创建动画实例,参数分别是自定义估值器对象,初始动画的对象,结束动画的对象
ValueAnimator valueAnimator = ValueAnimator.ofObject(new MyObjectEvaluator(), myObject1, myObject2);
//步骤三:设置动画参数
valueAnimator.setStartDelay(500);
//步骤四:开始动画
valueAnimator.start();
(3)估值器(TypeEvaluator)
作用:设置动画如何从初始值过渡到结束值的逻辑。
a.系统内置的估值器
通过上面学习ValueAnimator.ofInt()和ValueAnimator.ofFloat()知道系统内置了一个IntEvaluator估值器和FloatEvaluator估值器,实现了将初始值以整型或浮点型的形式过渡
到结束值的逻辑,下面以FloatEvaluator为例看下源代码:
public class FloatEvaluator implements TypeEvaluator {
public Float evaluate(float fraction, Number startValue, Number endValue) {
//fraction 表示动画完成度
//startValue,endValue,表示初始值和结束值
float startFloat = startValue.floatValue();
//返回当前动画的值
return startFloat + fraction * (endValue.floatValue() - startFloat);
}
b.自定义估值器
ValueAnimator.ofInt()和ValueAnimator.ofFloat()内置了系统估值器,即系统已经默认实现了如何从初始值过渡到结束值的逻辑,但是ValueAnimator.ofObject()没有系统默
认实现,因为对象的动画复杂多样,系统无法知道如何从初始对象过渡到结束对象。所以要自定义估值器告诉系统如何从初始对象过渡到结束对象,自定义估值器的逻辑
资源评论
weixin_38743602
- 粉丝: 396
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功