一:
animationset:
他是一个animation的一个子类,实际上是animation的一个集合。他将animation放到一个list集合中。需要对animation的基本设置可以通过animationset来设置。如果需要对一个控件进行多种动画设置,可以采用animationset。
代码:
//创建一个animationset AnimationSet animationset = new AnimationSet(true); //创建一个alphaanimation Animation alphaanimation = AnimationUtils.loadAnimation( Animation1Activity.this,R.anim.alpha); ScaleAnimation scaleanimation = new ScaleAnimation( 1f, 0f, 1f, 0f, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF); //设置动画时间 animationset.addAnimation(alphaanimation); animationset.addAnimation(scaleanimation); animationset.setDuration(2000); animationset.setStartOffset(2000); imageview.setAnimation(animationset);
代码说明:我们运用AnimationUtils加载一个xml中的alphaanimation,然后向上转系为Animation,然后再新建一个
scaleanimation,然后通过animationset将这两个动画添加到一起,然后绑定在一个控件上面。
可以通过只设置animationset来对动画共有属性进行配置。
****************************************************************************************************
二:
interpolator:动画变化的速率。
在animations框架当下定义了以下几种interpolator:
AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候较快。
AccelerateInterpolator 在动画开始的时候改变较慢,然后开始加速。
CycleInterpolator 动画循环播放特定次数,速率改变沿着正弦曲线。
DecelerateInterpolator 在动画开始的时候叫慢,然后开始减速。
LinearInterpolator 动画以均匀速率改变。
这个是在xml中进行设置:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:shareInterpolator="true"> <alpha android:fromAlpha="1" android:toAlpha="0" android:duration="1000" /> <rotate android:fromDegrees="0" android:toDegrees="180" android:pivotX="100%" android:pivotY="100%" android:duration="1000" /> </set>
代码解释:基本语法已经在上集讲过了,现在看上面的那个<set 标签,表示的就是animationset,指一系列的animation,下面可以加上多个animation。
android:interpolator这个就是设置动画改变速率,下面的那个android:shareInterpolator指下面的animation是否共享上面的动画改变速率,如果不共享,可以在下面的animation中单独设置。