一、ValueAnimator
1.获取value对应的值
2.设置监听,获取监听的过程
3.启动动画
4.实现步骤
5.总体代码
package com.example.myvalueanimator;import androidx.appcompat.app.AppCompatActivity;import android.animation.ValueAnimator;import android.os.Bundle;import android.util.Log;import android.widget.Toast;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ValueAnimator valueAnimator = ValueAnimator.ofFloat(1f, 2f); valueAnimator.setDuration(2000); valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { float value = (float) animation.getAnimatedValue(); Log.e("he","onAnimationUpdate: "+value); } }); valueAnimator.start(); }}
6.效果图
二、ObjectAnimator
1.实现步骤
2.总体代码
package com.example.myvalueanimator;import androidx.appcompat.app.AppCompatActivity;import android.animation.ObjectAnimator;import android.os.Bundle;import android.widget.TextView;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textview = findViewById(R.id.tv_one); //对控件进行透明度从0到1的变化 ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(textview, "alpha", 0f, 1f); objectAnimator.setDuration(6000); objectAnimator.start(); }}
3.效果图
三、监听器
1.onAnimationStart() 动画开始的时候调用
2.onAnimationEnd() 动画结束的时候调用
3.onAnimationCancel() 动画被取消的时候调用
4.onAnimationRepeat() 动画重复执行的时候调用
5.实现步骤
6.总体代码
package com.example.myvalueanimator;import androidx.appcompat.app.AppCompatActivity;import android.animation.Animator;import android.animation.AnimatorListenerAdapter;import android.animation.ObjectAnimator;import android.os.Bundle;import android.widget.TextView;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textview = findViewById(R.id.tv_one); //对控件进行透明度从0到1的变化 ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(textview, "alpha", 0f, 1f); objectAnimator.setDuration(6000); objectAnimator.start(); objectAnimator.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) { } }); //适配的方式 objectAnimator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animation) { super.onAnimationStart(animation); } }); }}