android 属性动画

属性动画

通过xml文件获取动画

 帧动画        AnimationDrawable 类
   使用      AnimationDrawable background = (AnimationDrawable) iv.getBackground()获取
     文件夹 res/drawable
     根标签 <animation-list>    AnimationDrawable类
 补间动画     Animation 类及其子类
   使用AnimationUtils类的loadAnimation()方法加载xml定义的动画
     文件夹 res/anim
     根标签 <alpha>         AlphaAnimation类
     根标签 <rotate>        RotareAnimation类
     根标签 <scale>         ScaleAnimation类
     根标签 <translate>     TranslateAnimation类
     根标签 <set>           AnimatoinSet类

 属性动画   Animator 类及其子类
   使用AnimatorInflater类的loadAnimator()方法加载xml定义的动画
     文件夹 res/animator
     根标签 <animator>            对应的是 ValueAnimator 类
           <objectAnimator>      对应的是ObjectAnimator 类
           <set>                 对应的是AnimatorSet类
 *

属性动画是andorid 3.0以后出来的

对比    帧动画(AnimationDrawable) 通过view的 background 来加载加载            路径 drawable文件夹

                          或者通过 AniamatonDrawable类加载

     补间动画(Animation)通过AnimationUtils.loadAnimation()方法加载   res/anim文件夹

                           或者通过Animation 的子类 使用

        (alpha(淡入)、scale(缩放)、translate(平移)、rotate(旋转))

都是作用在view上的,并没有改变view的属性,只是视觉上的改变,view的位置并没有发生变化


属性动画 animator,可以作用在属性上,是我们的动画更加强大 路径在 res/animator文件夹下

描述:在一定时间间隔内,通过不断对值进行改变,并不断将该值赋给对象的属性,从而实现该对象在该属性上的动画效果

核心类 ValueAnimator 和 ObjectAnimator

valueAnimator类如何使用 

在xml文件中使用

<animator xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000"
    android:fillAfter="false"
    android:fillBefore="true"
    android:fillEnabled="true"
    android:interpolator="interpolator_resource"
    android:repeatCount="0"
    android:repeatMode="restart"
    android:startOffset="1000"
    android:valueFrom="0"
    android:valueTo="100"
    android:valueType="intType"

    />
Animator animator = AnimatorInflater.loadAnimator(this, R.animator.scale);
animator.setTarget(iv); //设置给view
animator.start();

通过java实现

ValueAnimator valueAnimator = ValueAnimator.ofInt(0, 500);
valueAnimator.setDuration(2000);
valueAnimator.start();
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        int currentValue = (Integer) animation.getAnimatedValue();
        iv.getLayoutParams().width = currentValue;
        iv.requestLayout(); //请求重新绘制
    }
});

/*
    通过Java 代码形式

    补间动画
     AlphaAnimation alphaAnimation=new AlphaAnimation(0,1);
        alphaAnimation.setDuration(2000);
        iv.startAnimation(alphaAnimation);
    属性动画
      ObjectAnimator.ofFloat(iv, "scaleX", 1.0f, 3.0f);
        Alpha                  控制View的透明度             float
        TranslationX           控制X方向的位移               float
        TranslationY           控制Y方向的位移               float
        ScaleX                 控制X方向的缩放倍数             float
        ScaleY                 控制Y方向的缩放倍数             float
        Rotation               控制以屏幕方向为轴的旋转度数     float
        RotationX              控制以X轴为轴的旋转度数           float
        RotationY              控制以Y轴为轴的旋转度数           float
* */
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值