Android学习笔记(Android Studio)属性动画

Android学习笔记 属性动画


推荐新手向学习视频:B站https://www.bilibili.com/video/av38409964点我传送


属性动画

属性动画在移动结束后,可以点击移动后的位置,因为其属性改变了。但是补间动画,点击移动后的位置无效,点击原来的地方才有效,因为属性没改变。

  • ValueAnimator

  • ObjectAnimator.ofFloat()

    • 动画类型供参考: translationX translationY alpha rotation rotationX
  • activity_object_anim

      
      
      
          
      
      
    
  • 效果
    Android学习笔记(Android Studio)属性动画_第1张图片

  • ObjectAnimActivity

      package com.ylw.helloworld;
      
      import androidx.appcompat.app.AppCompatActivity;
      
      import android.animation.ObjectAnimator;
      import android.animation.ValueAnimator;
      import android.os.Bundle;
      import android.util.Log;
      import android.widget.TextView;
      
      public class ObjectAnimActivity extends AppCompatActivity {
      
          private TextView tvTest;
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_object_anim);
      
              tvTest = findViewById(R.id.tv);
      
              //较为简单的动画
              //在2秒的时间里以rotationY为轴沿Y轴旋转500度
              //tvTest.animate().rotationYBy(500).setDuration(2000).start();
              //在2秒的时间里沿Y轴平移500个值,也可以为-值,-值为向上
              //tvTest.animate().translationYBy(500).setDuration(2000).start();
              //在2秒的时间里沿Y轴平移到500个值的位置。
              //tvTest.animate().translationY(500).setDuration(2000).start();
              //在2秒中内透明度变为0
             // tvTest.animate().alpha(0).setDuration(2000).start();
      
              //控制值的变化
      //        ValueAnimator valueAnimator = ValueAnimator.ofInt(0,100);
      //        valueAnimator.setDuration(2000);
      //        //添加动画监听器
      //        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
      //            @Override
      //            public void onAnimationUpdate(ValueAnimator animation) {
      //                //valueAnimator实际的值
      //                Log.d("aaaa",animation.getAnimatedValue()+"");
      //                //动画的进度0-1
      //                Log.d("aaaa",animation.getAnimatedFraction()+"");
      //            }
      //        });
      //        valueAnimator.start();
      
              //执行动画的对象,动画的类型,移动的值(可以设置多个)
              ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(tvTest,"translationY",0,500,400,600,300,800);
              objectAnimator.setDuration(2000);
              //添加动画监听器
              objectAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                  @Override
                  public void onAnimationUpdate(ValueAnimator animation) {
                      //
                  }
              });
              objectAnimator.start();
          }
      }
    
  • 效果
    Android学习笔记(Android Studio)属性动画_第2张图片

你可能感兴趣的:(Android,Studio)