Android属性动画xml篇

本文详细介绍了Android属性动画在XML中的使用,包括ObjectAnimator、ValueAnimator和AnimatorSet的配置。涉及关键属性如propertyName、valueTo、valueFrom、duration、repeatCount、repeatMode等,并解释了如何设置动画执行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

属性动画对应的xml文件放于res/animator中,其根节点共有下列三种,objectanimator、animator、set

objectanimator 对应 ObjectAnimator.java
  1. android:propertyName 必须的,需要操作的属性
  2. android:valueTo 必须的,目标值
  3. android:valueFrom 起始值,如果不设置,会调用target的get方法,如果get方法不存在则会报错(可以使用装饰器模式)
  4. android:duration 持续时间单位ms,默认值300ms
  5. android:startOffset 调用start后延迟多少ms执行动画
  6. android:repeatCount 重复次数,0表示不重复,1表示重复一次,-1表示无限循环
  7. android:repeatMode reverse | restart 前者表示偶数次动画将动画起点当做终点,将终点当成起点,默认restart
  8. android:valueType intType | floatType(default),当value为颜色时,不要设置该值
<!--res/animator/animator_object.xml-->
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="translationX" android:valueTo="700f" android:duration="2000" android:startOffset="1000" android:repeatCount="-1" android:repeatMode="reverse" />

Animator animator_object = AnimatorInflater.loadAnimator(this, R.animator.animator_object);
animator_object.setTarget(btn);
animator_object.start();
animator 对应 ValueAnimator.java
  1. android:valueTo 必须的,目标值
  2. android:valueFrom 必须的,起始值
  3. android:duration 持续时间单位ms,默认值300ms
  4. android:startOffset 调用start后延迟多少ms执行动画
  5. android:repeatCount 重复次数,0表示不重复,1表示重复一次,-1表示无限循环
  6. android:repeatMode reverse | restart 前者表示偶数次动画将动画起点当做终点,将终点当成起点,默认restart
  7. android:valueType intType | floatType(default),当value为颜色时,不要设置该值
<!--res/animator/animator_animator.xml-->
<?xml version="1.0" encoding="utf-8"?>
<animator xmlns:android="http://schemas.android.com/apk/res/android" android:valueFrom="0" android:valueTo="100" android:duration="1000" android:repeatMode="reverse" android:repeatCount="0" android:startOffset="1000"/>

ValueAnimator animator_object = (ValueAnimator) AnimatorInflater.loadAnimator(this, R.animator.animator_animator);
animator_object.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
      @Override
      public void onAnimationUpdate(ValueAnimator animation) {
          Log.d(TAG, "onAnimationUpdate: " + animation.getAnimatedValue());
      }
});
animator_object.start();
set 对应 AnimatorSet.java
  1. android:ordering 执行顺序 sequentially | together (default),前者表示顺序执行,上个动画执行完了,下个动画才开始执行,如果上个动画repeatCount为-1则下个动画永远不可能执行,后者表示同时执行
<!--res/animator/animator_set.xml-->
<?xml version="1.0" encoding="utf-8"?>
<set android:ordering="together" xmlns:android="http://schemas.android.com/apk/res/android">
    <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="translationX" android:valueTo="700f" android:duration="2000" android:startOffset="1000" android:repeatCount="-1" android:repeatMode="reverse" />
    <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="backgroundColor" android:valueTo="#000" android:duration="2000" android:startOffset="1000" android:repeatCount="-1" android:repeatMode="reverse" />
</set>

Animator animator_object = AnimatorInflater.loadAnimator(this, R.animator.animator_set);
animator_object.setTarget(btn);
animator_object.start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值