又是美好的一天,今天给要介绍的是View 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>
来康康效果吧~:
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>
来康康效果图吧~:
好了,本篇就结束啦,谢谢大家观看~再见,有大佬有不同见解请在评论区留言