属性动画的使用

*** ## 属性动画分类: ***
ValueAnimator
ObjectAnimator

属性动画的本质是通过不断set的方式去修改对象,因此是否能设置属性动画取决于是否有set和set方法。
ValueAnimator有三种分类分别是:
ofInt
ofFloat
ofObject

这三个最主要的区别是传入属性的数值类型不同,主要的看AnimatorUpdateListener这个接口实现,接口实现如下:
ValueAnimator animator = ValueAnimator.ofInt(1);
animator.setDuration(10000);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
//获取此值然后根据自己的需求,进行赋值和更改对象
int curValue = (int) animation.getAnimatedValue();
}
});

ofInt和ofFloat比较简单可以直接实现以上方式即可,ofObject使用相对麻烦,麻烦的原因是因为ofInt和ofFloat自带估值器,ofObject需要自己实现估值器。
animator.setEvaluator(new TypeEvaluator() {
@Override
public Object evaluate(float fraction, Object startValue, Object endValue) {
//fraction指的是当前的比列,startValue开始时的值,
//endValue开始时的值,返回的值就是ValueAnimator.getAnimatedValue()

return null;
}
});

ObjectAnimator是通过传入的String找到对应的属性值。
ObjectAnimator.ofInt(tx,“Roation”,1,2,3);

但是这些只能实现单一的动画。很多情况下,我们即需要透明度变化也需要旋转变化等等乱七八糟的动画,这种组合需要的是AnimatorSet解决。

AnimatorSet().apply {
//主要是4个方法,play(),after(),before(),with()这个是指展示不同动画的时机
play(animator).after(animator2).before(animator3).with(animator4)
duration = 3*1000
start()
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值