作者:邹峰立,微博:zrunker,邮箱:zrunker@yahoo.com,微信公众号:书客创作,个人平台:www.ibooker.cc。

Layout Animation布局动画,是用来设置ViewGroup的动画。
我们先来认识一个重要的类-LayoutTransition,该类是Android API提供的用于动画显示ViewGroup中的Layout的帮助类,我们可以使用该类设置动画并绑定目标Layout。那一般在什么情况下为Layout设置动画效果呢?比方说,如果我们需要对一个Layout实现动态地添加或删除子View对象,那么我们可以分别为需添加或删除的View对象在移动到新的位置的过程添加动画形式。一般地,Layout中的View对象有四种动画变化的形式,如下:
-
APPEARING — 元素在容器中显现时需要动画显示。
-
CHANGE_APPEARING — 由于容器中要显现一个新的元素,其它元素的变化需要动画显示。
-
DISAPPEARING — 元素在容器中消失时需要动画显示。
-
CHANGE_DISAPPEARING — 由于容器中某个元素要消失,其它元素的变化需要动画显示。
实例:实现ListView进入动画效果。
XML文件:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<-- 缩放-->
<scale
android:duration="1500"
android:fromXScale="0.1"
android:fromYScale="0.1"
android:pivotX="50%p"
android:pivotY="50%p"
android:toXScale="1.0"
android:toYScale="1.0"/>
<--透明度-->
<alpha
android:duration="1000"
android:fromAlpha="0.1"
android:toAlpha="1.0"/>
</set>
引入:
// 设置ListView
listView= (ListView) findViewById(R.id.listview);
ArrayList list =newArrayList<>();
for(inti =0;i <10;i++)
list.add("IBook布局动画"+ i);
ArrayAdapter adapter =newArrayAdapter<>(this,android.R.layout.simple_list_item_1,list);
listView.setAdapter(adapter);
//布局动画控制器
LayoutAnimationController animationController =new LayoutAnimationController(AnimationUtils.loadAnimation(this,R.anim.move_in));
animationController.setOrder(LayoutAnimationController.ORDER_RANDOM);
listView.setLayoutAnimation(animationController);
listView.startLayoutAnimation();

网友评论