Android动画之布局变化

以下内容来自Android Training,本人在此基础上作一些个人实践和记录,以便参考

布局变更,顾名思义,在layout中有变化,比如添加或删除或更新View。
如下图,展示一个动态的布局变更:

Android动画之布局变化_第1张图片
layout_change_no by keith

Enable animations

很简单,一行代码就可以搞定,设置ViewGroup的animateLayoutChanges属性为true,例:


设置之后正常布局变更将会有动画过渡,效果如下:

Android动画之布局变化_第2张图片
layout_change_yes by keith

自定义动画

当然,这个布局的变更也是允许自定义的,我们只是需要拿一个LayoutTransition对象个ViewGroup就可以了,然后把一个动画信息放到LayoutTransition里面,代码如下:

// custom a layout transition, do a rotation base Y-axis
LayoutTransition transition=new LayoutTransition();
Animator animator=ObjectAnimator.ofFloat(null,View.ROTATION_Y,0,180);

// 注意,在animator中设置duration无效,要在这里设置
transition.setDuration(LayoutTransition.APPEARING,1000);
transition.setAnimator(LayoutTransition.APPEARING,animator);

//将LayoutTransition对象传入,替换默认的LayoutTransition对象
mContainerView.setLayoutTransition(transition);

自定义的效果如下,带个旋转:

Android动画之布局变化_第3张图片
layout_change_cus by keith

Reference

  1. Animating Layout Changes

你可能感兴趣的:(Android动画之布局变化)