2015-10-01 16 views
5

Bazı propertyValuesHolder, objectAnimator XML'de tanımladığım bir animasyonda kullanmaya çalışıyorum.PropertyValuesHolder, XML tanımlı animasyonda kullanıldığında çökme neden olur

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

ben yük ve animasyon başlatmak için aşağıdaki kodu kullanıyorum: Bunu yüklediğinizde bir çalışma zamanı istisnası sebeple Unknown animator name: propertyValuesHolder

Bu ObjectAnimator docs here doğrudan alınan tam animasyon ile atılır :

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) 
0123:

Animator animator = AnimatorInflater.loadAnimator(getApplicationContext(), R.animator.example); 
animator.setTarget(view); 
animator.start(); 

ben stacktrace aldığım nedeni budur

Bu, propertyValuesHolder içermeyen bir animasyon kullandığımda çalışır. Bu etiketin XML'de kullanıldığı çevrimiçi örnekleri bulamıyorum. Yanlış bir şey mi yapıyorum yoksa işe yaramıyor mu?

+0

@Shadow Droid Bağlantı 404s. 'Neye göre kod değiştirmeli'? ValueAnimator sayfasındaki ikinci örnekte, aynı çökmeye neden olacak bir XML özelliği bulundu "propertyValuesHolder" – Harkin

+0

Bağlantıyı bir önceki yorumda düzgün bir şekilde koymadığınız için üzgünüz .. http://developer.android.com/reference/android/animation/ValueAnimator .html Hangi amaçla PropertyValuesHolder kullanıyorsunuz ... ama gerçekte AnimatorSet'i önlemek ve kodları okunabilir yapmak için kullanılır. Bu bağlantıyı kontrol edin http://android-developers.blogspot.in/2011/05/introducing -viewpropertyanimator.html –

+0

Bunun amacını anlıyorum ve bunun için kullanıyorum (yukarıdaki örnekte bir nesnenin x ve y özelliklerini 1 saniyelik süre boyunca canlandırmak için). Bunu, programlanmış olarak tanımlanmış bir XML'de tanımlanmış bir animasyonda yapmaya çalışıyorum. Bu, dokümanlara (bağlandığım bağlantıya bağlandığınız) örnekler olduğu için mümkün olmalıdır, ancak XML dosyasından yüklemeye çalıştığımda bir istisna atılır. – Harkin

cevap

2

Bunun nedeninin, propertyValuesHolder XML öğesinin Lollipop'dan önce desteklenmediğine inanıyorum.

AnimatorInflater'a bakarsanız, ilk kez PropertyValuesHolder sınıfının başvurulduğunu göreceksiniz 5.0.

İlgili konular