android animation transitiondrawable

Crossfading usando TransitionDrawable no funciona en Android



animation (4)

Aquí hay un ejemplo SI tiene 2 dibujos y desea animar su transición en algunos ImageView :

package com.example.app; import android.app.Activity; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.graphics.drawable.TransitionDrawable; import android.os.Bundle; import android.widget.ImageView; class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Drawable backgrounds[] = new Drawable[2]; Resources res = getResources(); backgrounds[0] = res.getDrawable(android.R.drawable.btn_star_big_on); backgrounds[1] = res.getDrawable(android.R.drawable.btn_star_big_off); TransitionDrawable crossfader = new TransitionDrawable(backgrounds); ImageView image = (ImageView)findViewById(R.id.image); image.setImageDrawable(crossfader); crossfader.startTransition(3000); } }

Luego, si desea volver a la imagen original, puede llamar

// Make sure the transition occurred crossfader.startTransition(0); // Reverse transition crossfader.reverseTransition(3000);

Por favor, corrígeme si entendí mal tu pregunta.

Tengo dos imágenes que quiero cruzar desvanecerse. Inicialmente ambos usan la vista de imagen. Luego uso .getDrawable () para obtener el dibujo de las imágenes.

Este es el código que utilicé.

Drawable backgrounds[] = new Drawable[2]; backgrounds[0] = BackgroundImage.getDrawable(); backgrounds[1] = BackgroundImageBlurred.getDrawable(); TransitionDrawable crossfader = new TransitionDrawable(backgrounds); crossfader.startTransition(3000);

Solo muestra la imagen en el primer elemento de la matriz, que se muestra de todos modos ya que ambas imágenes se configuraron como visibles en el XML.

La transición no comienza

Cualquier ayuda sería apreciada :)


Tal vez te guste este
- res / drawable / transition.xml:

<?xml version="1.0" encoding="utf-8"?> <transition xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/on" /> <item android:drawable="@drawable/off" /> </transition>

ImageView:

<ImageButton android:id="@+id/button" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/transition" />

Javacode:

ImageButton button = (ImageButton) findViewById(R.id.button); TransitionDrawable drawable = (TransitionDrawable) button.getDrawable(); drawable.startTransition(500);

Si es útil, puedes ver Google-Dev:

http://developer.android.com/guide/topics/resources/drawable-resource.html


Un TransitionDrawable es solo un tipo especial de dibujo. No se dibuja solo, debe colocarse en algún lugar (por ejemplo, en un fondo de Vista, en un ImageView, & c) para que se muestre.

Si está intentando realizar un crossfade de dos imágenes, tiene dos enfoques posibles:

  1. Utilice un solo ImageView con un TransitionDrawable .
  2. Usa dos vistas de imagen y compáralos con animaciones .

Usted debe utilizar la setCrossFadeEnabled

final TransitionDrawable briefcaseTransition = (TransitionDrawable) briefcase.getDrawable(); briefcaseTransition.setCrossFadeEnabled(true); briefcaseTransition.startTransition(500);