2015-10-01 8 views
5

propertyValuesHolderobjectAnimatorをXMLで定義したアニメーションで使用しようとしています。XMLで定義されたアニメーションでPropertyValuesHolderがクラッシュする場合

<?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> 

私はロードし、アニメーションを開始するには、次のコードを使用しています:私はそれをロードすると、実行時例外が理由Unknown animator name: propertyValuesHolder

これはObjectAnimatorドキュメントhereから直接取得フルアニメーションであるとスローされます:

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で使われているどこの例もオンラインで見つけることができません。間違ったことをしているのですか、それともうまくいかないのですか?

+0

@Shadow Droidあなたのリンク404。 'それに応じてコードを変更する'何に基づいて? ValueAnimatorページの2番目の例では、同じクラッシュを引き起こすXML定義の 'propertyValuesHolder'があります – Harkin

+0

前のコメントにリンクを適切に入れないと申し訳ありません。http://developer.android.com/reference/android/animation/ValueAnimator .html私はあなたがPropertyValuesHolderをどのような目的で使用しているのではないのですか?実際はAnimatorSetを避けてコードを読みやすくするために使用されています... http://android-developers.blogspot.in/2011/05/introducing -viewpropertyanimator.html –

+0

私はそれが目的であると理解しています。そのような場合(上記の例では、オブジェクトのxとyのプロパティを1秒間アニメーション化するために使用しています)。私は、プログラムで定義されていないXMLで定義されたアニメーションでこれを実行しようとしています。これは、ドキュメントの例(リンク先とリンク先)にありますが、XMLファイルからロードしようとすると例外がスローされます – Harkin

答えて

2

私は理由が考えられます。propertyValuesHolder XML要素はLollipopより前にサポートされていません。

AnimatorInflaterを見ると、初めてPropertyValuesHolderクラスが参照されていることがわかります。

関連する問題