package com.example.administrator.mystudent.PropertyAnimation;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AnimationSet;
import android.view.animation.BounceInterpolator;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;
import com.example.administrator.mystudent.R;
/**
* Created by hyang on 2016/8/26.
* 属性动画学习
*/
public class PropertyAnimationActivity extends android.app.Activity{
private ImageView img;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_property_animation);
img= (ImageView) findViewById(R.id.iv_img);
button= (Button) findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// setAnimation1();
//setAnimation2();
//setAnimation3();
setAnimation4();
}
});
}
/**
* Tween动画
*/
private void setAnimation1(){
TranslateAnimation animation=new TranslateAnimation(0,200,0,0);
animation.setDuration(3000);
//animation.setFillAfter(true);//停留在动画完成的位置
img.startAnimation(animation);
}
/**
* 属性动画
* 方式1
*/
private void setAnimation2(){
ObjectAnimator.ofFloat(img,"translationX",0,200f).setDuration(3000).start();
ObjectAnimator.ofFloat(img,"rotation",0,360f).setDuration(3000).start();
}
/**
* 属性动画
* 方式2
*/
private void setAnimation3(){
PropertyValuesHolder p1=PropertyValuesHolder.ofFloat("translationX",0,200f);
PropertyValuesHolder p2=PropertyValuesHolder.ofFloat("rotation",0,360f);
ObjectAnimator.ofPropertyValuesHolder(img,p1,p2).setDuration(3000).start();
}
/**
* 属性动画
* 方式3
* 有动画顺序
*/
private void setAnimation4(){
ObjectAnimator objectAnimator1=ObjectAnimator.ofFloat(img,"translationX",0,200f);
ObjectAnimator objectAnimator2=ObjectAnimator.ofFloat(img,"rotation",0,360f);
//创建android提供的几种动画效果(在Android的APIdemo中)
objectAnimator1.setInterpolator(new BounceInterpolator());
AnimatorSet animatorSet=new AnimatorSet();
//animatorSet.playSequentially(objectAnimator1,objectAnimator2);
//按顺序播放动画
animatorSet.play(objectAnimator1).after(objectAnimator2);
animatorSet.setDuration(3000); animatorSet.start(); }}