为listview、或者recyclerView的item增加进场动画

使用Android提供给我们的LayoutAnimation,LayoutAnimation作用于ViewGroup,为ViewGroup制定一个动画,在这里我们给ListView或者RecyclerView添加一个LayoutAnimation动画,当他的子元素出场时都会具有这种动画效果

第一步:定义一个LayoutAnimation,在res/anim文件夹下创建anim_list.xml,代码如下


其中delay是开始动画的时间延迟,这个跟下面的子元素anim_item的动画周期有关,如果子元素的动画时间周期为300ms,那么delay为0.5表示每个元素都要延时300ms * 0.5 = 150ms才能播放入场动画,第一个元素延迟150ms,第二个元素延时300ms以此类推……

animationOrder表示动画出厂顺序:normal顺序显示、reverse逆向显示、random随机播放入场动画

animation为子元素具体的入场动画

第二步:为子元素指定入场动画,在res/anim文件夹下新建anim_item.xml,代码如下



    
    

这里我们给子元素添加一个透明度动画(alpha)和一个平移动画(translate)

第三步:为ListView或者RecyclerView指定LayoutAnimation,这样listview或者recyclerView的item就有入场动画了


	

 

另外:除了在xml中指定LayoutAnimation外,代码实现可以通过LayoutAnimationController实现,在这里指定一个listview的动画

ListView listView = findViewById(R.id.listview);
Animation animation = AnimationUtils.loadAnimation(this,R.anim.anim_item);
LayoutAnimationController controller = new LayoutAnimationController(animation);
controller.setDelay(0.5f);
controller.setOrder(LayoutAnimationController.ORDER_NORMAL);
listView.setLayoutAnimation(controller);

 

 

 

 

 

 

 

 

你可能感兴趣的:(android,动画,ListView,RecyclerView,入场动画,item)