Android学习|【Android-动画】属性动画基本介绍及使用方式

首先,我们要区别属性动画与补间动画的区别:

  • 属性动画:真正改变了控件的属性
  • 补间动画:视觉现象,没有改变都控件真正的值(如:当控件发送位置变化时,如果设置了点击事件,只有控件原位置的地方才有点击事件!)
属性动画重要的两个类:
  1. ValueAnimator
  2. ObjectAnimator.ofFloat()
————————————————————————————————
以一个textView为例来演示属性动画!
1、animate()方法的基本使用 animate()方法是view自带的,实现属性动画的方法,但是该方法只能 实现简单的动画效果 !
以textView为例,textView也是一个view,所以可以直接使用该方法!
TextView tvTest=findViewById(R.id.tv_test); //translationYBy():沿Y轴移动多少距离,其他方法同理 //setDuration():设置持续时间,单位是ms //start():启动动画 tvTest.animate().translationYBy(500).setDuration(2000).start(); //alpha():透明度变化 tvTest.animate().alpha(0).setDuration(5000).start();

效果:
Android学习|【Android-动画】属性动画基本介绍及使用方式
文章图片

2、ValueAnimator 该类适用于监听值的变化,如从0->100发生的数值的变化可以用到该方法
//设置valueAnimator的数值从0变为100 ValueAnimator valueAnimator=ValueAnimator.ofFloat(0,100); //设置时间 valueAnimator.setDuration(1000); //设置监听事件 valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { //对值的变化进行监听(0-100[上述的值设的是0-100]) Log.d(TAG,""+animation.getAnimatedValue()); //返回当前动画分数,即在动画中使用的经过/内插分数 //动画的最新帧更新(0-1) Toast.makeText(EasyDemoActivity.this,""+animation.getAnimatedFraction(),Toast.LENGTH_SHORT).show(); } }); //开始动画 valueAnimator.start();

效果:
Android学习|【Android-动画】属性动画基本介绍及使用方式
文章图片

3、ObjectAnimator.ofFloat() 可以设置持续改变的动画
TextView tvTest=findViewById(R.id.tv_test); //将textview作为参数穿进去 //"translationY":表示动画要执行的类型 //0,500,300:表示移动的过程,可多个值 ObjectAnimator objectAnimator=ObjectAnimator.ofFloat(tvTest,"translationY",0,500,300); //设置动画事件 objectAnimator.setDuration(3000); //开始动画 objectAnimator.start();

【Android学习|【Android-动画】属性动画基本介绍及使用方式】效果:
Android学习|【Android-动画】属性动画基本介绍及使用方式
文章图片

    推荐阅读