一、ValueAnimator

1.获取value对应的值

image.png

2.设置监听,获取监听的过程

image.png

3.启动动画

image.png

4.实现步骤

image.png

5.总体代码

  1. package com.example.myvalueanimator;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.animation.ValueAnimator;
  4. import android.os.Bundle;
  5. import android.util.Log;
  6. import android.widget.Toast;
  7. public class MainActivity extends AppCompatActivity {
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.activity_main);
  12. ValueAnimator valueAnimator = ValueAnimator.ofFloat(1f, 2f);
  13. valueAnimator.setDuration(2000);
  14. valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
  15. @Override
  16. public void onAnimationUpdate(ValueAnimator animation) {
  17. float value = (float) animation.getAnimatedValue();
  18. Log.e("he","onAnimationUpdate: "+value);
  19. }
  20. });
  21. valueAnimator.start();
  22. }
  23. }

6.效果图

image.png

二、ObjectAnimator

1.实现步骤

image.png

2.总体代码

  1. package com.example.myvalueanimator;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.animation.ObjectAnimator;
  4. import android.os.Bundle;
  5. import android.widget.TextView;
  6. public class MainActivity extends AppCompatActivity {
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.activity_main);
  11. TextView textview = findViewById(R.id.tv_one);
  12. //对控件进行透明度从0到1的变化
  13. ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(textview, "alpha", 0f, 1f);
  14. objectAnimator.setDuration(6000);
  15. objectAnimator.start();
  16. }
  17. }

3.效果图

image.png

三、监听器

1.onAnimationStart() 动画开始的时候调用

2.onAnimationEnd() 动画结束的时候调用

3.onAnimationCancel() 动画被取消的时候调用

4.onAnimationRepeat() 动画重复执行的时候调用

5.实现步骤

image.png

6.总体代码

  1. package com.example.myvalueanimator;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.animation.Animator;
  4. import android.animation.AnimatorListenerAdapter;
  5. import android.animation.ObjectAnimator;
  6. import android.os.Bundle;
  7. import android.widget.TextView;
  8. public class MainActivity extends AppCompatActivity {
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.activity_main);
  13. TextView textview = findViewById(R.id.tv_one);
  14. //对控件进行透明度从0到1的变化
  15. ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(textview, "alpha", 0f, 1f);
  16. objectAnimator.setDuration(6000);
  17. objectAnimator.start();
  18. objectAnimator.addListener(new Animator.AnimatorListener() {
  19. @Override
  20. public void onAnimationStart(Animator animation) {
  21. }
  22. @Override
  23. public void onAnimationEnd(Animator animation) {
  24. }
  25. @Override
  26. public void onAnimationCancel(Animator animation) {
  27. }
  28. @Override
  29. public void onAnimationRepeat(Animator animation) {
  30. }
  31. });
  32. //适配的方式
  33. objectAnimator.addListener(new AnimatorListenerAdapter() {
  34. @Override
  35. public void onAnimationStart(Animator animation) {
  36. super.onAnimationStart(animation);
  37. }
  38. });
  39. }
  40. }