LayoutAnimation基本使用

LayoutAnimation

前面属性动画讲了如何给控件实现动画,而LayoutAnimation就是为容器实现统一动画的

XML文件实现

  1. 在res/anim/下

    <?xml version="1.0" encoding="utf-8"?>
    <layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
                     android:delay="1"
                     android:animationOrder="normal"
                     android:animation="@anim/slide_in_left"/>

* delay:指每个Item的动画开始延时,取值是android:animation所指定动画时长的倍数,取值类型可以是float类型,也可以是百分数,默认是0.5;比如我们这里指定的动画是@anim/slide_in_left,而在slide_in_left.xml中指定android:duration=”1000”,即单次动画的时长是1000毫秒,而我们在这里的指定android:delay=”1”,即一个Item的动画会在上一个item动画完成后延时单次动画时长的一倍时间开始,即延时1000毫秒后开始。*

animationOrder:指viewGroup中的控件动画开始顺序,取值有normal(正序)、reverse(倒序)、random(随机)

animation:指定每个item入场所要应用的动画。仅能指定res/aim文件夹下的animation定义的动画,不可使用animator动画。

2.在容器控件布局文件的layoutanimation属性中引入layoutAnimationXML文件。

代码实现

XML文件的layoutanimation标签对应的内饰LayoutAnimationController,构造函数为:


        public LayoutAnimationController(Animation animation)
    public LayoutAnimationController(Animation animation, float delay)





对应标签中的android:animation属性,delay对应标签中的android:delay属性。

其他属性对应方法为:


    /**
     * 设置animation动画
     */
    public void setAnimation(Animation animation)
    /**
     * 设置单个item开始动画延时
     */
    public void setDelay(float delay)
    /**
     * 设置viewGroup中控件开始动画顺序,取值为ORDER_NORMAL、ORDER_REVERSE、ORDER_RANDOM
     */
    public void setOrder(int order)

代码实现,就不需要写layoutanimation标签了,只需要写animatin动画xml文件或者也代码实现就OK了。不如listView实现item动画。

“`

    //代码设置通过加载XML动画设置文件来创建一个Animation对象;
    Animation animation= AnimationUtils.loadAnimation(this,R.anim.slide_in_left);   //得到一个LayoutAnimationController对象;

    LayoutAnimationController controller = new LayoutAnimationController(animation);   //设置控件显示的顺序;

    controller.setOrder(LayoutAnimationController.ORDER_REVERSE);   //设置控件显示间隔时间;

    controller.setDelay(0.3f);   //为ListView设置LayoutAnimationController属性;

    mListView.setLayoutAnimation(controller);
    mListView.startLayoutAnimation();

““

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值