2016-04-14 22 views
1

Ich möchte ein ObjectAnimator auf einem Drawable (kein View) verwenden. Lasst uns sagen, dass ich ein ImageView haben und mit einem Drawable als Quelle:ObjectAnimator auf Drawable Objekt

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageView" 
    android:background="@color/myColor" 
    android:src="@drawable/myDrawable/> 

Was ich will, ist, dass nur myDrawable animiert ist und nicht zum Beispiel auf der ImageView der Hintergrund.

Nun, wenn ich eine ObjectAnimator auf dem ziehbar nichts gelten passiert:

ImageView imageView = (ImageView) findViewById(R.id.imageView); 
Drawable myDrawable = imageView.getDrawable(); 
ObjectAnimator animator = ObjectAnimator.ofFloat(myDrawable, "alpha", 1f, 0f); 
animator.setDuration(1000); 
animator.start(); 

Warum?

+0

Haben Sie versucht, AnimationDrawable? – Ricardo

+0

Sie sollten das auf die imageView anwenden, verwenden Sie eine andere Ansicht als Hintergrund, wenn Sie es brauchen. – Nanoc

+0

@Ricardo 'AnimationDrawable' ist kein' ObjectAnimator' und erzwingt die Verwendung mehrerer 'Drawable' als Animationsrahmen. – brescia123

Antwort

0

Dank Kommentare @pskink ich herausgefunden, was das Problem war: Drawable die alpha-Eigenschaft als int und nicht float hat.

ObjectAnimator animator = ObjectAnimator.ofInt(myDrawable, "alpha", 255, 0);