【Android】Layout Animation(布局动画)

作者: 吾非言 | 来源:发表于2017-10-11 20:34 被阅读228次

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

本文选自书客创作平台第24篇文章。阅读原文

书客创作

​Layout Animation布局动画,是用来设置ViewGroup的动画。

我们先来认识一个重要的类-LayoutTransition,该类是Android API提供的用于动画显示ViewGroup中的Layout的帮助类,我们可以使用该类设置动画并绑定目标Layout。那一般在什么情况下为Layout设置动画效果呢?比方说,如果我们需要对一个Layout实现动态地添加或删除子View对象,那么我们可以分别为需添加或删除的View对象在移动到新的位置的过程添加动画形式。一般地,Layout中的View对象有四种动画变化的形式,如下:

  1. APPEARING — 元素在容器中显现时需要动画显示。

  2. CHANGE_APPEARING — 由于容器中要显现一个新的元素,其它元素的变化需要动画显示。

  3. DISAPPEARING — 元素在容器中消失时需要动画显示。

  4. 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();

GitHub地址
阅读原文


微信公众号:书客创作

相关文章

网友评论

    本文标题:【Android】Layout Animation(布局动画)

    本文链接:https://www.haomeiwen.com/subject/kkcgyxtx.html