2015-11-12 23 views
1

是否有可能以編程方式從xml文件中定義的StateListAnimator加載指定的動畫師類,以便我可以以編程方式向其添加偵聽器?如何以編程方式從StateListAnimator xml文件加載指定的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> 
+0

不,你不能那樣做 – pskink

+0

oh ..所以我所能做的只是在Activity/Fragment上定義和編寫所有這些動畫代碼然後...;( – shaunkawano

+0

但是...,你可以從xml加載Animator,然後調用addState( int [] specs,Animator animator)' – pskink

回答

0

不,你不能這樣做......

但是......,你可以從xml加載Animator然後致電StateListAnimator#addState(int[] specs, Animator animator)

+0

好的。我會放棄我現在想要的,並且這樣做。我希望將來有一天我能做到這一點,儘管..無論如何,謝謝! :) – shaunkawano

相關問題