前面的两篇博文一个是直接在代码中new出alpha、rotate、scale、translate对象,一个是在xml文件的set标签中指定,如果在set标签下指定对个Animation对象,就会出现叠加的效果。
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="3000"/>
<rotate
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"/>
</set>
认识Interpolator
Interpolator定义了动画变化的速率,在Animation框架中定义了如下几种Interpolator。
AccelerateDecelerateInterpolator:在动画开始于结束的地方速率改变比较慢,在中间的时候加速。
AccelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始加速。
CycleInterpolator:动画循环播放特定的次数,速率改变沿着正弦曲线。
DecelerateInterpolator:在动画开始 的地方速率改变比较慢,然后开始减速。
LinearInterpolator:动画以匀速速率改变。
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:shareInterpolator="true"> </set>
在set标签中设置set标签中alpha、scale、rotate、translate的interpolator,shareInterpolator=true表面set标签中所有的子标签都享有此interpolator,false的话就需要子标签自己设置自己的interpolator,在代码中亦有相应的设置。