【问题标题】:Android ObjectAnimatorSet XML Convert To JAVA CodeAndroid ObjectAnimatorSet XML 转换为 JAVA 代码
【发布时间】:2016-12-27 13:36:32
【问题描述】:

这些是我在 xml 中设置的动画器,我想转换为 java 代码,但我不知道如何在“AnimatorSet”中设置“AnimatorSet”?

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="sequentially">
    <set>
        <objectAnimator
            android:duration="50"
            android:propertyName="scaleX"
            android:valueFrom="1.0"
            android:valueTo="0.8" />
        <objectAnimator
            android:duration="50"
            android:propertyName="scaleY"
            android:valueFrom="1.0"
            android:valueTo="0.8" />
    </set>

    <set>
        <objectAnimator
            android:duration="50"
            android:propertyName="scaleX"
            android:valueFrom="0.8"
            android:valueTo="1.1" />
        <objectAnimator
            android:duration="50"
            android:propertyName="scaleY"
            android:valueFrom="0.8"
            android:valueTo="1.1" />
    </set>
</set>

【问题讨论】:

  • AnimatorSet 播放多个Animators,AnimatorSet 也是Animator,因为它扩展了Animator,所以你可以播放多个AnimatorSets
  • 哈,我明白了,非常感谢
  • 但老实说,你可以在一个 ObjectAnimator#ofFloat 方法调用中做到这一点
  • mm,我用过这个,“ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view, "scaleX", 1f, 0.8f, 1.1f, 1f);"
  • 差不多,它只在x轴上缩放,你需要x & y

标签: android xml objectanimator animator


【解决方案1】:

首先你要创建一个AnimatorSet来一起播放动画,然后在AnimatorSet中添加两个ObjectAnimator,像这样:

AnimatorSet animatorSet = new AnimatorSet();
    animatorSet.playTogether(
            ObjectAnimator.ofFloat(view, "scaleX", 1, 0.8f, 1.1f),
            ObjectAnimator.ofFloat(view, "scaleY", 1, 0.8f, 1.1f)
    );
animatorSet.setDuration(1000);
animatorSet.start();    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 2012-04-03
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    相关资源
    最近更新 更多