Animation动画(一)--View Animation之Tween Animation补间动画

在Android中动画基本分为两大类:

  • View Animation(视图动画)
    • Tween Animation(补间动画)
    • Frame Animation(逐帧动画);
  • Property Animator(属性动画);
    • ValueAnimator
    • ObjectAnimation;

概述

Tween Animation补间动画的分类

  • alpha 渐变透明度动画效果
  • scale 放大缩小动画效果
  • translate 位移动画效果
  • rotate 旋转动画效果

动画存放位置

在res下创建anim文件夹,在anim文件夹中创建.xml,根目录为对应的属性

在这里插入图片描述

共同属性

alpha ,scale ,translate,rotate 都继承自animation,所以他们有共同属性如下:

  • android:duration 动画持续时间,以毫秒为单位
  • ndroid:fillAfter 如果设置为true,控件动画结束时,将保持动画最后时的状态
  • android:fillBefore 如果设置为true,控件动画结束时,还原到开始动画前的状态
  • android:fillEnabled 与android:fillBefore 效果相同,都是在动画结束时,将控件还原到初始化状态
  • android:repeatCount 重复次数
  • android:repeatMode 重复类型,有reverse和restart两个值,reverse表示倒序回放,restart表示重新放一遍,必须与repeatCount一起使用才能看到效果。因为这里的意义是重复的类型,即回放时的动作。
  • android:interpolator 设定插值器

alpha 渐变透明动画

  • android:fromAlpha 动画开始的透明度,从0.0 --1.0 ,0.0表示全透明,1.0表示完全不透明
  • ndroid:toAlpha 动画结束时的透明度,也是从0.0 --1.0 ,0.0表示全透明,1.0表示完全不透明
    在这里插入图片描述
    咋们这里设置的是从0.1的透明度在3s之内变化到1的透明度,并且动画结束的时候保持原来的状态.重复3次,并且是重复播放的.来康康效果吧:
    在这里插入图片描述
    Activity中引用:
Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.alpha_anim);
tv_animation.startAnimation(animation);

scale 缩放动画

  • android:fromXScale 起始的X方向上相对自身的缩放比例(%),浮点值,比如1.0代表自身无变化,0.5代表起始时缩小一倍,2.0代表放大一倍;
  • android:toXScale 结尾的X方向上相对自身的缩放比例,浮点值;
  • android:fromYScale 起始的Y方向上相对自身的缩放比例,浮点值
  • android:toYScale 结尾的Y方向上相对自身的缩放比例,浮点值;
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000"
    android:fillBefore="true"
    android:toXScale="150%"
    android:toYScale="150%"
    android:fromXScale="50%"
    android:fromYScale="50%"
    >
</scale>

这里我设置的是起始点X轴,Y轴缩小50%,然后X轴和Y轴放大150%,最后动画结束后返回到原来的状态.来康康效果图:
在这里插入图片描述

translate 平移动画

  • android:fromXDelta 起始点X轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p
  • android:fromYDelta 起始点Y轴从标,可以是数值、百分数、百分数p 三种样式;
  • android:toXDelta 结束点X轴坐标
  • android:toYDelta 结束点Y轴坐标
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:toXDelta="0%"
    android:toYDelta="0%"
    android:fromXDelta="150%"
    android:fromYDelta="150%"
    android:duration="3000"
    android:fillBefore="true"
    >
</translate>

来康康效果吧:
在这里插入图片描述

rotate 旋转动画

  • android:fromDegrees 开始旋转的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数
  • android:toDegrees 结束时旋转到的角度位置,正值代表顺时针方向度数,负值代码逆时针方向度数
  • android:pivotX 缩放起点X轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p
  • android:pivotY 缩放起点Y轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p

补充:缩放起点:
在这里插入图片描述

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:toDegrees="0"
    android:fromDegrees="-360"
    android:duration="3000"
    android:pivotX="50%"
    android:pivotY="50%"
    android:fillBefore="true"
    >
</rotate>

来康康效果吧~:
在这里插入图片描述

扫描二维码关注公众号,回复: 11430645 查看本文章

set组合使用

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000">
    <alpha android:fromAlpha="0.1"
        android:toAlpha="1"/>
    <rotate android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="50%"
        android:pivotY="50"/>
    <translate android:fromXDelta="200%"
         android:fromYDelta="200%"
        android:toYDelta="0%"
        android:toXDelta="0%"/>
    <scale android:pivotY="50%"
        android:pivotX="50%"
        android:fromYScale="0%"
        android:fromXScale="0%"
        android:toYScale="100%"
        android:toXScale="100%"/>
</set>

来康康效果图吧~:
在这里插入图片描述

好了,本篇就结束啦,谢谢大家观看~再见,有大佬有不同见解请在评论区留言

GIt链接: langyangyang.

猜你喜欢

转载自blog.csdn.net/weixin_44819566/article/details/106867957