学习Android动画

View动画
View动画的四种变换:平移,缩放,旋转,透明度
属性动画
属性动画可以对任意对象的属性进行动画而不仅仅是View,属性动画从API 11才有,采用开源动画库nineoldandroid来兼容以前的版本。常见的动画类:ValueAnimator,ObjectAnimator和AnimatorSet
建议采用代码的方式实现属性动画
1 ValueAnimator:初始值和结束值之间额动画过渡就是有ValueAnimator负责计算的,它还负责管理动画的播放次数,播放模式,以及对动画设置监听

     1 调用ValueAnimator.ofFloat()方法构建一个ValueAnimator的实例
     2 调用ValueAnimator的setDuration()方法来设置动画运行的时长
     3 调用addUpdateListener()方法添加一个动画的监听
     4 调用setStartDelay()方法来设置动画延迟播放的时间
     5 调用setRepeatCount()方法设置动画循环播放的次数
     6 调用setRepeatMode()方法设置动画循环播放的模式
     7 调用start()方法开始动画

ObjectAnimator继承自ValueAnimator,可以直接对任意对象的任意属性进行动画操作的,是动画中常用的类

      // ObjectAnimator animator=ObjectAnimator.ofFloat(textView,"alpha",1f,0f,1f);//实现淡入淡出的效果

          //  ObjectAnimator animator=ObjectAnimator.ofFloat(textView,"rotation",0f,360f);//对textView进行360度旋转

            float curTranslationX=textView.getTranslationX();
            //textView先向左移除屏幕,然后再移回来
          //  ObjectAnimator animator=ObjectAnimator.ofFloat(textView,"translationX",curTranslationX,-500f,curTranslationX);

           ObjectAnimator animator=ObjectAnimator.ofFloat(textView,"scaleY",1f,3f,1f);//实现缩放效果

            animator.setDuration(3000);
            animator.start();

组合动画:借助AnimatorSet类实现组合动画,该类提供了一个play()方法,向该方法中传入一个Animator对象(ValueAnimator或ObjectAnimator)将会返回一个AnimatorSet.Builder实例。AnimatorSet.Builder中包括以下四个方法:

    1 after(Animator anim)将现有动画插入到传入的动画之后执行
    2 after(long delay)将现有动画延迟指定毫秒后执行
    3 before(Animator anim)将现有动画插入到传入动画之前执行
    4 with(Animator anim)将现有动画和传入的动画同时执行

Animator监听器:Animator类中提供 一个addListener()方法,该方法接受一个AnimatorListener,实现AnimatorListener的四个接口就可以监听动画的各种事件;也可以传入AnimatorListenerAdapter,该类已经实现了AnimatorListener接口,需要监听某个事件,直接重写相应的方法即可,就不用实现AnimatorListener的所有接口了

AnimatorUpdateListener监听接口:监听整个动画过程,动画是有许多帧组成的,每播放一帧,它的方法onAnimationUpdate就会被调用一次

ValueAnimator的高级用法
ObjectAnimator的高级用法

Interpolator:控制动画的变化速率
TimeInterpolator:属性动画当中新增对的接口,用于兼容以前的interpolator的

Animator或AnimatorSet的实例调用setInterpolator()方法,参数传入TimeInterpolator的实现类的实例即可设置动画的的变化速率

Android 3.1系统中补充了ViewPropertyAnimator机制,ViewPropertyAnimator是针对View类的,并不是所有的对象。

textView.animate().alpha(0f):实现textView从常规改变成透明的状态,animate()方法返回一个ViewPropertyAnimatro对象,拿到该对象后就可以调用它的各种方法来实现动画效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值