动画基础篇学习之TweenAnimation
基于上一篇我们简单的提到了ObjectAnimator动画,这一篇我们一起学习一下动画初级篇(视图动画/补间动画),视图动画使用比较简单,它提供了AlphaAnimation(透明动画),RotateAnimation(旋转动画),TranslateAnimation(位置动画),ScaleAnimation(尺寸动画)四种动画方式,并且提供了这些动画的组合类AnimationSet(动画集合),视图动画优点在于使用方便,效率高,且xml文件书写逻辑清晰,有优点必有瑕疵,缺点就是:不具备交互性,当某个布局中的View发生视图动画后,它的相应事件还是在动画原始位置,不会随之视图动画而改变,所以视图动画只能作为简单的动画效果,避免交互发生。
(视图动画缺点演示GIF图)
一、视图动画xml文件存放位置
二、使用技巧
简要说明:AlphaAnimation,RotateAnimation,TranslateAnimation,ScaleAnimation都继承于android.view.animation.Animation故此Animation相应的方法,上面视图动画都有。
2.1,透明动画:为视图增加透明度的变化动画
◆java实现◆:
★xml实现★:
▼java调用:
是不是上手很容易,好下面我们看效果图
(透明动画效果图)
2.2,旋转动画:为视图增加旋转的变化效果
◆java实现◆
★xml实现★:
▼java调用:这里不说明了和上面一样
(旋转动画效果图)
学习到这里是不是感觉很轻松,下面我讲解一下动画经常用到的几个方法:
Java方法:setFillAfter(boolean) ◇设置为true,控件动画结束时将保持动画最后一帧(xml文件中,需要设置在set便签才生效)。
Java方法:android:interpolator:插值器。设置动画速率的变化(譬如加速、减速、匀速等)
◇LinearInterpolator:动画以均匀的速度改变。
◇AccelerateInterpolator:动画开始的地方改变速度慢,然后开始加速。
◇AccelerateDecelerateInterpolator:动画开始的地方改变速度慢,中间时候加速。
◇CycleInterpolator:动画循环播放特定的次数,变化速度按正弦曲线改变。
◇DecelerateInterpolator:动画开始速度快,然后开始减速。
Java方法:setRepeatCount(int): ◇重复模式,有reverse(倒序)和restart(重复)两种,必须配合repeatCount一起使用。Java方法:setRepeatMode(int):
◇“-1”为重复循环
Java方法:setStartOffset(long):
◇android:startOffset: 延迟一定毫秒之后才开始动画。
介绍了上述方法,下面继续讲解视图动画 2.3,位移动画:为视图移动时增加位移动画
◆java实现◆
★xml实现★:
2.4,尺寸动画:为视图缩放时改变尺寸动画
◆java实现◆
★xml实现★: