android_属性动画

来源:互联网 发布:ftp默认端口号 编辑:程序博客网 时间:2024/05/29 03:23

属性动画

android:3.0之后出来的。
属性动画的特点和View动画是不同,
属性的动画:是控件和图片一起移动的,就是所谓的(和尚和庙一起走了.)

平移动画

    public void translate(View v){     ImageView iv = (ImageView)findViewById(R.id.iv);        /**         * 参数一: 谁去播放这个动画         * 参数二: 属性名字 想要改变x方向的移动         * 参数三:动画执行的数值         */        ObjectAnimator animator = ObjectAnimator.ofFloat(iv, "translationX", 0,10,80,90,100);        animator.setDuration(2000);//执行的时间        animator.setRepeatCount(ObjectAnimator.INFINITE);//重复的次数        animator.setRepeatMode(ObjectAnimator.REVERSE);//重复的模式        animator.start();//启动    }

translationX,初学者,并不知道,这个属性值的名字,是怎么来的.其实
我们只需要在编译器上面使用iv. 后面就会出现很多提示 ,例如
这里写图片描述

上面例子的translationX,我就是在这里找到的

旋转动画

    public void rotate(View v){//      iv.setRotationX()()        ObjectAnimator animator = ObjectAnimator.ofFloat(iv, "rotationY", 0,360);        animator.setDuration(2000);        animator.setRepeatCount(ObjectAnimator.INFINITE);        animator.setRepeatMode(ObjectAnimator.REVERSE);        animator.start();    }

缩放动画

    public void scale(View v){      //iv.setScaleX()        ObjectAnimator animator = ObjectAnimator.ofFloat(iv, "scaleX", 1,3);        animator.setDuration(2000);        animator.setRepeatCount(ObjectAnimator.INFINITE);        animator.setRepeatMode(ObjectAnimator.REVERSE);        animator.start();    }

渐变动画

    public void alpha(View v){        ObjectAnimator animator = ObjectAnimator.ofFloat(iv, "alpha", 1,0);        animator.setDuration(2000);        animator.setRepeatCount(ObjectAnimator.INFINITE);        animator.setRepeatMode(ObjectAnimator.REVERSE);        animator.start();    }

集合动画

public void set(View v){        //1. 构建集合        AnimatorSet set = new AnimatorSet();        ObjectAnimator animator = ObjectAnimator.ofFloat(iv, "translationX", 0,100);        animator.setDuration(2000);        //播放集合动画时候,需要setRepeatCount,setRepeatMode去掉.    /*  animator.setRepeatCount(ObjectAnimator.INFINITE);        animator.setRepeatMode(ObjectAnimator.REVERSE);*/        //-------------------------        ObjectAnimator animator2 = ObjectAnimator.ofFloat(iv, "translationY", 0,100);        animator2.setDuration(2000);        /*animator2.setRepeatCount(ObjectAnimator.INFINITE);        animator2.setRepeatMode(ObjectAnimator.REVERSE);*/        //指定动画一起播放//      set.playTogether(animator , animator2);        //按照顺序播放        set.playSequentially(animator2,animator);        //播放动画        set.start();    }

属性动画使用xml配置来实现.(属性动画一般都是,使用代码来实现的)

使用xml文件定义

  1. 在res文件夹下创建一个文件夹 , animator
  2. 在里面声明,动画
        <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"         android:duration="2000"        android:repeatCount="infinite"        android:repeatMode="reverse"        android:valueFrom="0"        android:valueTo="-100"        android:propertyName="translationX"        >    </objectAnimator>
  1. 导入动画,让控件播放动画
    ImageView  iv = (ImageView)findViewById(R.id.iv);    //导入了刚才的动画信息        Animator animator =                 AnimatorInflater.loadAnimator(this, R.animator.translate);        animator.setTarget(iv);        animator.start();
0 0
原创粉丝点击