• 7.3 Android布局动画" level="2">7.3 Android布局动画

    7.3 Android布局动画" class="reference-link">7.3 Android布局动画

    所谓布局动画是指作用在ViewGroup上,给ViewGroup增加View时添加一个动画过渡效果。

    最简单的布局动画是在ViewGroup的XML中,使用以下代码来打开布局动画。

    1. android:animateLayoutChanges="true"

    通过以上代码设置,当ViewGroup添加View时,子View会呈现逐渐显示的过渡效果,不过这个效果是Android默认的显示的过渡效果,且无法使用自定义的动画来替换这个效果。

    另外,还可以通过使用LayoutAnimationController类来自定义一个子View的过渡效果,代码如下所示。

    1. LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
    2. //设置过渡动画
    3. ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1);
    4. sa.setDuration(2000);
    5. //设置布局动画的显示属性
    6. LayoutAnimationController lac = new LayoutAnimationController(sa, 0.5F);
    7. lac.setOrder(LayoutAnimationController.ORDER_NORMAL);
    8. //为ViewGroup设置布局动画
    9. ll.setLayoutAnimation(lac);

    通过以上代码,给LinearLayout增加了一个视图动画,让子View在出现的时候,有一个缩放的动画效果。

    LayoutAnimationController的第一个参数,是需要作用的动画,而第二个参数,则是每个子View显示的delay时间。当delay时间不为0时,可以设置子View显示的顺序,如下所示。

    • LayoutAnimationController.ORDER_NORMAL——顺序
    • LayoutAnimationController.ORDER_RANDOM——随机
    • LayoutAnimationController.ORDER_REVERSE——反序