您的位置:首页 > 移动开发 > Android开发

android_属性动画

2016-03-14 01:37 666 查看

属性动画

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文件定义

在res文件夹下创建一个文件夹 , animator

在里面声明,动画

<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>


导入动画,让控件播放动画

ImageView  iv = (ImageView)findViewById(R.id.iv);
//导入了刚才的动画信息
Animator animator =
AnimatorInflater.loadAnimator(this, R.animator.translate);

animator.setTarget(iv);

animator.start();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 动画