layoutAnimation作用于ViewGroup,为viewgroup指定动画,使其子元素出场时都具有该动画效果。使用方法很简单。
Animationsets=AnimationUtils.loadAnimation(this, R.anim.set);
LayoutAnimationController layoutAnimationController=newLayoutAnimationController(sets);
layoutAnimationController.setDelay(0.5f);
layoutAnimationController.setOrder(LayoutAnimationController.ORDER_NORMAL);
linearLayout.setLayoutAnimation(layoutAnimationController);
其中setDelay(0.5f)表示动画延迟时间(其值等于动画持续时间*0.5f)
上述代码的作用是为linearLayout中的所有子元素添加R.anim.set动画,并且每个子元素的入场时间不同。具体算法是,第一个子元素入场延迟动画持续时间*0.5f*1,第二个入场延迟动画持续时间*0.5f*2,依次类推。
SetOrder()有三个值 normal顺序,reverse逆序,random随机。其作用是设置子元素动画的播放顺序。
使用overridePendingTransition(enterAnim, exitAnim)方法,该方法只能在startActivity()或finish()方法之后调用才能生效。
startActivity(newIntent(this,AnimationActivity.class));
overridePendingTransition(R.anim.set,R.anim.rotate);
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.set,R.anim.rotate);
}