Android开发中最常用的ListView以及GridView可以实现多种的动画,为我们的应用增加视觉的体验。比如携程机票搜索的列表页、卡牛等。今天咱们就看看如何实现炫酷的列表动画效果。
首先如果只是对列表中的没一个item使用同一个动画效果,我们可以使用LayoutAnimation,顾名思义,是用来设置给viewgroup类型的animation,是子view来执行的。可以两种实现方式
第一种方式:
XML文件中使用::android:layoutAnimation="@anim/popinlayout"
第二种方式:
java代码中动态设置::viewGrop.setLayoutAnimation(LayoutAnimationController);
和Animation类似,Layout Animation也支持AnimationListener,在动画开始或者结束做一些处理,具体的就不多说了。layoutanimation会在View Group第一次进行布局的时候执行一次。
具体来说,layoutAnimation支持三个参数,
- anim就是要执行的动画比如平移、旋转、透明度以及缩放
- animationOrder,这个是说子view按照什么顺序来执行anim,可以使normal(正常,0-n),reverse(反序,n-0),random为随机。一般不要太乱的还是normal
- delay,用于延迟的每个子view的动画开始动画持续时间的浮点数。越大间隔越长。0.3或者30%的字样
另外:LayoutAnimationController包含一个内部类,LayoutAnimationController.AnimationParameters,这个类主要包括了count和index两个参数。这些参数用于计算每个单独的视图动画的开始时间。ViewGroup.LayoutParams这个类大家都一定很熟悉的,主要是height和width。
在XMl使用动画
使用xml文件创建动画
> 在res/anim文件夹先新建一个xml文件,list_anim_layout.xml
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:delay="30%"
android:animationOrder="normal"
android:animation="@anim/slide_bottom" />
> 同时创建slide_bottom.xml动画文件
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android=