如何以编程方式从StateListAnimator xml文件加载指定的Animator?

时间:2015-11-12 08:16:48

标签: android xml

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

我知道我们可以使用简单的Animator xml文件来做到这一点,但不能用于任何代表StateListAnimator的xml。我已经尝试将ID应用于xml上的animator类,但似乎我们无法对其应用任何ID。

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

提前致谢!

在API级别21或以上:

AnimatorInflater.loadStateListAnimator(
    getContext(), R.animator.state_list_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>

1 个答案:

答案 0 :(得分:0)

不,你不能这样做......

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