组合动画的实现其实就是将多个补间动画组合在一起放在同一个插值器中. 通过插值器来调用它的API,如果想要各种不同的动画可自行改变动画的参数和添加动画时的顺序,当然也可以将组合动画拆开实现.
//是否通用一个插值器
AnimationSet set=new AnimationSet(true);
//位移 相对于父窗体
TranslateAnimation translate=new TranslateAnimation(Animation.RELATIVE_TO_PARENT,0.0f,Animation.RELATIVE_TO_PARENT,1.0f,Animation.RELATIVE_TO_PARENT,0.0f,Animation.RELATIVE_TO_PARENT,1.0f);
//旋转 相对于自身
RotateAnimation rotate=new RotateAnimation(0,-360f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
//透明
AlphaAnimation alpha=new AlphaAnimation(1.0f,0.0f);
//缩放 相对于自身
ScaleAnimation scale=new ScaleAnimation(1.0f,0.0f,1.0f,0.0f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
//将动画添加到组合动画当中
//注意放入的顺序
set.addAnimation(scale);
set.addAnimation(alpha);
set.addAnimation(rotate);
set.addAnimation(translate);
//设置执行时间
set.setDuration(10000);
//执行的次数
scaleAnimation.setRepeatCount(1);
//重复执行
scaleAnimation.setRepeatMode(Animation.REVERSE);
//启动动画
image.setAnimation(set);
//注意:将动画添加到组合动画时注意放入的顺序哦~