public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private View contentRl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contentRl = findViewById(R.id.rl_content);
contentRl.setOnClickListener(this);
}
// @Override
// public void onClick(View v) {
// //1构造了一个值动画
// ValueAnimator valueAnimator = null;
// if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
// valueAnimator = ValueAnimator.ofArgb(Color.GREEN, Color.BLACK);
// }
// valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
// @Override
// public void onAnimationUpdate(ValueAnimator animation) {
// //通过getAnimatedValue拿到当前值
// int animatedValue = (int) animation.getAnimatedValue();
//
contentRl.setAlpha(animatedValue/100);
contentRl.setRotation(animatedValue);
contentRl.setTranslationX(animatedValue);
contentRl.setTranslationY(animatedValue);
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
// contentRl.setBackground(new ColorDrawable(animatedValue));
// }
// }
// });
// valueAnimator.addListener(new Animator.AnimatorListener() {
// @Override
// public void onAnimationStart(Animator animation) {
//
// }
//
// @Override
// public void onAnimationEnd(Animator animation) {
//
// }
//
// @Override
// public void onAnimationCancel(Animator animation) {
//
// }
//
// @Override
// public void onAnimationRepeat(Animator animation) {
//
// }
// });
// valueAnimator.setRepeatMode(ValueAnimator.REVERSE);
valueAnimator.setRepeatCount(1);
valueAnimator.setStartDelay(2000);
// valueAnimator.setDuration(3000);
//设置插值器,控制过渡的速率
// valueAnimator.setInterpolator(new BounceInterpolator());
// valueAnimator.start();
// }
// @Override
// public void onClick(View v) {
//2针对对象和属性名字
// ObjectAnimator rotationAnimator = ObjectAnimator.ofFloat(contentRl, "alpha", 0.5f,1f,0.2f);
// rotationAnimator.setDuration(3000);
// rotationAnimator.start();
// }
//
@Override
public void onClick(View v) {
//3利用AnimatorSet进行组合动画
// ObjectAnimator rotationAnimator = ObjectAnimator.ofFloat(contentRl, "rotation", 0f,300f);
// ObjectAnimator rotationAnimator1 = ObjectAnimator.ofFloat(contentRl, "translationX", 0f,300f);
// ObjectAnimator rotationAnimator2 = ObjectAnimator.ofFloat(contentRl, "alpha", 0f,1f);
// AnimatorSet animatorSet = new AnimatorSet();
// animatorSet.setDuration(5000);
// //设置同时播放还是顺序播放
// animatorSet.playTogether(rotationAnimator,rotationAnimator1,rotationAnimator2);
// animatorSet.start();
//4针对view有ViewPropertyAnimator可以链式的实现组合动画
// contentRl.animate().alpha(0f).translationX(300).start();
//5 通过xml定义动画 使用AnimatorInflater去加载xml动画文件
// ValueAnimator animator = (ValueAnimator) AnimatorInflater.loadAnimator(this, R.animator.anim_rotate);
// animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
// @Override
// public void onAnimationUpdate(ValueAnimator animation) {
// //使用
// float animatedValue = (float) animation.getAnimatedValue();
// contentRl.setRotation(animatedValue);
// }
// });
// animator.start();
// ObjectAnimator animator = (ObjectAnimator) AnimatorInflater.loadAnimator(this, R.animator.anim_translationx);
// animator.setTarget(contentRl);
// animator.start();
//加载xml组合动画
AnimatorSet animator = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.anim_set);
animator.setTarget(contentRl);
animator.start();
}
}
private View contentRl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contentRl = findViewById(R.id.rl_content);
contentRl.setOnClickListener(this);
}
// @Override
// public void onClick(View v) {
// //1构造了一个值动画
// ValueAnimator valueAnimator = null;
// if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
// valueAnimator = ValueAnimator.ofArgb(Color.GREEN, Color.BLACK);
// }
// valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
// @Override
// public void onAnimationUpdate(ValueAnimator animation) {
// //通过getAnimatedValue拿到当前值
// int animatedValue = (int) animation.getAnimatedValue();
//
contentRl.setAlpha(animatedValue/100);
contentRl.setRotation(animatedValue);
contentRl.setTranslationX(animatedValue);
contentRl.setTranslationY(animatedValue);
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
// contentRl.setBackground(new ColorDrawable(animatedValue));
// }
// }
// });
// valueAnimator.addListener(new Animator.AnimatorListener() {
// @Override
// public void onAnimationStart(Animator animation) {
//
// }
//
// @Override
// public void onAnimationEnd(Animator animation) {
//
// }
//
// @Override
// public void onAnimationCancel(Animator animation) {
//
// }
//
// @Override
// public void onAnimationRepeat(Animator animation) {
//
// }
// });
// valueAnimator.setRepeatMode(ValueAnimator.REVERSE);
valueAnimator.setRepeatCount(1);
valueAnimator.setStartDelay(2000);
// valueAnimator.setDuration(3000);
//设置插值器,控制过渡的速率
// valueAnimator.setInterpolator(new BounceInterpolator());
// valueAnimator.start();
// }
// @Override
// public void onClick(View v) {
//2针对对象和属性名字
// ObjectAnimator rotationAnimator = ObjectAnimator.ofFloat(contentRl, "alpha", 0.5f,1f,0.2f);
// rotationAnimator.setDuration(3000);
// rotationAnimator.start();
// }
//
@Override
public void onClick(View v) {
//3利用AnimatorSet进行组合动画
// ObjectAnimator rotationAnimator = ObjectAnimator.ofFloat(contentRl, "rotation", 0f,300f);
// ObjectAnimator rotationAnimator1 = ObjectAnimator.ofFloat(contentRl, "translationX", 0f,300f);
// ObjectAnimator rotationAnimator2 = ObjectAnimator.ofFloat(contentRl, "alpha", 0f,1f);
// AnimatorSet animatorSet = new AnimatorSet();
// animatorSet.setDuration(5000);
// //设置同时播放还是顺序播放
// animatorSet.playTogether(rotationAnimator,rotationAnimator1,rotationAnimator2);
// animatorSet.start();
//4针对view有ViewPropertyAnimator可以链式的实现组合动画
// contentRl.animate().alpha(0f).translationX(300).start();
//5 通过xml定义动画 使用AnimatorInflater去加载xml动画文件
// ValueAnimator animator = (ValueAnimator) AnimatorInflater.loadAnimator(this, R.animator.anim_rotate);
// animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
// @Override
// public void onAnimationUpdate(ValueAnimator animation) {
// //使用
// float animatedValue = (float) animation.getAnimatedValue();
// contentRl.setRotation(animatedValue);
// }
// });
// animator.start();
// ObjectAnimator animator = (ObjectAnimator) AnimatorInflater.loadAnimator(this, R.animator.anim_translationx);
// animator.setTarget(contentRl);
// animator.start();
//加载xml组合动画
AnimatorSet animator = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.anim_set);
animator.setTarget(contentRl);
animator.start();
}
}