Android 如何以编程方式从StateListAnimator xml文件加载指定的动画师?

Android 如何以编程方式从StateListAnimator xml文件加载指定的动画师?,android,xml,Android,Xml,是否可以通过编程方式从xml文件上定义的StateListAnimator加载指定的animator类,以便我可以通过编程方式向其添加侦听器 我知道我们可以使用简单的Animator xml文件来实现这一点,但不能用于任何表示StateListAnimator的xml。我曾尝试将ID应用于xml上的animator类,但似乎我们无法将任何ID应用于它 下面是我从xml和xml文件内容加载状态列表animator的代码 提前谢谢 在API等级21或以上: AnimatorInflater.load

是否可以通过编程方式从xml文件上定义的StateListAnimator加载指定的animator类,以便我可以通过编程方式向其添加侦听器

我知道我们可以使用简单的Animator xml文件来实现这一点,但不能用于任何表示StateListAnimator的xml。我曾尝试将ID应用于xml上的animator类,但似乎我们无法将任何ID应用于它

下面是我从xml和xml文件内容加载状态列表animator的代码

提前谢谢

在API等级21或以上:

AnimatorInflater.loadStateListAnimator(
    getContext(), R.animator.state_list_animator);
下面是我的状态列表动画xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="false">
        <set>
            <objectAnimator android:duration="@android:integer/config_shortAnimTime"
                            android:propertyName="rotation"
                            android:valueTo="0f"
                            android:valueType="floatType"
                    />
        </set>
    </item>
    <item android:state_selected="true">
        <set>
            <objectAnimator
                    android:duration="@android:integer/config_shortAnimTime"
                            android:propertyName="rotation"
                            android:valueTo="180f"
                            android:valueType="floatType"/>
        </set>
    </item>
</selector>


不,你不能那样做


但是…,您可以从xml中加载
Animator
,然后调用
StateListAnimator#addState(int[]specs,Animator Animator)
不,您不能这样做


但是…,您可以从xml中加载
Animator
,然后调用
StateListAnimator#addState(int[]specs,Animator Animator)

不,您不能这样做哦。。所以我所能做的就是在我的活动/片段上定义并编写所有的动画代码,然后;(但是…,你可以从xml中加载
Animator
,然后调用
addState(int[]specs,Animator Animator)
,这是真的;我会放弃我现在想要的,改为那样做。我希望将来有一天我可以这样做。无论如何,谢谢!:)嘿,pskink,你能再写一次或者复制粘贴你写的答案吗?我将结束这个问题,因为你的答案已经令人满意了,我猜没有其他评论或答案了。不,你不能那样做哦。。所以我所能做的就是在我的活动/片段上定义并编写所有的动画代码,然后;(但是…,你可以从xml中加载
Animator
,然后调用
addState(int[]specs,Animator Animator)
,这是真的;我会放弃我现在想要的,改为那样做。我希望将来有一天我可以这样做。无论如何,谢谢!:)嘿,pskink,你能再写一次或者复制粘贴你写的答案吗?我将结束这个问题,因为你的答案已经很令人满意了,我猜没有其他评论或答案了。好的。我会放弃我现在想要的,改为那样做。我希望将来有一天我能做到。。无论如何,谢谢!:)可以我会放弃我现在想要的,改为那样做。我希望将来有一天我能做到。。无论如何,谢谢!:)