5
我試圖在XML中定義的動畫中使用propertyValuesHolder
和objectAnimator
。當我加載運行時引發異常,原因Unknown animator name: propertyValuesHolder
PropertyValuesHolder在使用XML定義的動畫時導致崩潰
這是直接從ObjectAnimator
文檔here進行的完整動畫:
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:repeatCount="1"
android:repeatMode="reverse">
<propertyValuesHolder android:propertyName="x" android:valueTo="400"/>
<propertyValuesHolder android:propertyName="y" android:valueTo="200"/>
</objectAnimator>
我用下面的代碼加載和啓動動畫:
Animator animator = AnimatorInflater.loadAnimator(getApplicationContext(), R.animator.example);
animator.setTarget(view);
animator.start();
原因我從堆棧跟蹤得到的是:
Caused by: java.lang.RuntimeException: Unknown animator name: propertyValuesHolder
at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:592)
at android.animation.AnimatorInflater.createAnimatorFromXml(AnimatorInflater.java:551)
at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java:122)
at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java:102)
at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java:87)
這適用於我使用不包含propertyValuesHolder
的動畫。在XML中使用該標籤時,我找不到任何示例。我做錯了什麼,或者它不工作?
@Shadow Droid你的鏈接404s。根據什麼「相應地更改代碼」? ValueAnimator頁面上的第二個例子有一個XML定義的'propertyValuesHolder',它將導致同樣的崩潰 – Harkin
對不起,以前的評論中沒有正確地放置鏈接.. http://developer.android.com/reference/android/animation/ValueAnimator .html我不會爲了什麼目的使用PropertyValuesHolder ...但它的實際用途是避免使用AnimatorSet並使代碼可讀...請檢查此鏈接http://android-developers.blogspot.in/2011/05/introducing -viewpropertyanimator.html –
我明白它的目的,並且我正在使用它(在上面的示例中,在1秒的時間內爲對象的x和y屬性設置動畫效果)。我試圖在XML中定義的動畫中執行此操作,而不是以編程方式定義的動畫。這應該是可能的,因爲在文檔中有這樣的例子(我鏈接到的那個和你鏈接的),但是當我嘗試從XML文件加載它時引發異常 – Harkin