Android 属性动画(一)

什么是属性动画?
动画元素的某些属性真实发生变化,渐变过程中产生的动画效果。属性动画可以实现比补间动画更多样的自定义动画效果,同时不会出现补间动画中属性其实没有真实变化的情况,而且它可以针对组件某个具体属性、甚至非组件的对象定义动画,是制作复杂、细致动画效果时常用的一种动画实现方式。

原理是什么?
方式一:
属性动画的实现原理:由数值发生器(ValueAnimator)设置开始和结束的两个数值,通过它的setDuration() 方法设置动画总时间,通过插值器(Intepolator) 来控制动画速率,数值发生器会根据这些设置自动生成一个数值序列,然后由它的 getAnimatedValue() 方法获取数值序列值,动画效果就可以通过这个序列值不断改变对象的某些属性值来实现,实现的

        final ValueAnimator animator = ValueAnimator.ofFloat(1,0);
        animator.setDuration(1000);
        animator.setInterpolator(new AccelerateInterpolator());
        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {
                float value = (float) valueAnimator.getAnimatedValue();
                imageView.setAlpha(value);
            }
        });
animator.start();
        

方式二:
为了简化属性动画的实现过程,Android 提供 ObjectAnimator 类,它封装了 ValueAnimator 接口的实现、并简化了属性动画的实现代码

  ObjectAnimator animator = ObjectAnimator.ofFloat(imageView,"rotationX",30,0);
        animator.setRepeatCount(-1);
        animator.setDuration(2000);
        animator.setInterpolator(new AccelerateInterpolator());
        animator.start();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王睿丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值