Android transformar el icono en otro

¿cómo puedo archivar la animación de un icono que se transforma en otro, como la hamburguesa en la flecha (cajón de navegación) o el lápiz en la cruz (bandeja de entrada)? ¿Cómo puedo archivar esta animación?

La animación de iconos se puede lograr utilizando animated-vector

En primer lugar definir sus iconos como vector drawables. Por ejemplo, vamos a tomar una marca para cruzar la animación como se encuentra aquí . ic_tick a ic_cross .

ic_cross.xml

 <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="120dp" android:height="120dp" android:viewportWidth="@integer/viewport_width" android:viewportHeight="@integer/viewport_height"> <group android:name="@string/groupTickCross" android:pivotX="@integer/viewport_center_x" android:pivotY="@integer/viewport_center_y"> <path android:name="@string/cross" android:pathData="M6.4,6.4 L17.6,17.6 M6.4,17.6 L17.6,6.4" android:strokeWidth="@integer/stroke_width" android:strokeLineCap="square" android:strokeColor="@color/stroke_color"/> </group> </vector> 

ic_tick.xml

 <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="120dp" android:height="120dp" android:viewportWidth="@integer/viewport_width" android:viewportHeight="@integer/viewport_height"> <group android:name="@string/groupTickCross" android:pivotX="@integer/viewport_center_x" android:pivotY="@integer/viewport_center_y"> <path android:name="@string/tick" android:pathData="M4.8,13.4 L9,17.6 M10.4,16.2 L19.6,7" android:strokeWidth="@integer/stroke_width" android:strokeLineCap="square" android:strokeColor="@color/stroke_color"/> </group> </vector> 

A continuación, creamos animadores para cada uno de los pasos. valueFrom indica el punto de inicio de la animación y valueTo es el producto final de la animación. interpolator es el tipo de interpolación, y se puede encontrar mucho más en documentos Android. duration especifica la duración de la animación.

tick_to_cross.xml

 <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="pathData" android:valueFrom="M4.8,13.4 L9,17.6 M10.4,16.2 L19.6,7" android:valueTo="M6.4,6.4 L17.6,17.6 M6.4,17.6 L17.6,6.4" android:duration="@integer/duration" android:interpolator="@android:interpolator/fast_out_slow_in" android:valueType="pathType"/> 

Ahora, usando animated-vector, animamos el vector. Aquí <target android:name especifica el destino en el que se debe hacer la animación, y android:animation dice la animación que se va a hacer.

avd_tick_to_cross.xml

 <animated-vector xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/ic_tick"> <target android:name="@string/tick" android:animation="@animator/tick_to_cross" /> </animated-vector> 

Hay algunas limitaciones en cómo animar entre los vectores dibujables, pero se pueden cortar de una manera u otra, si usted tiene una imagen clara qué animar a qué, y cómo la animación debe ir.

  • ¿Dónde están almacenados los dibujos o clipart de android.R.drawable?
  • Icono del cajón de navegación en lugar de tres líneas
  • Icono del recuento de notificaciones de Actionbar (insignia) como Google
  • Barra de acción dividida: los iconos se superponen cuando uso android: showAsAction = "always"
  • Icono de lanzador de Android demasiado pequeño
  • ¿Qué relleno, margen y tamaño debo utilizar para un diseño personalizado MenuItem?
  • Cordova / Phonegap - Android: Icono sin actualizar
  • Pager de Android Pestaña deslizante con iconos
  • ¿Por qué parpadean los iconos / textos de las lengüetas de TabLayout al pasar entre páginas?
  • Ocultar icono del lanzador de aplicaciones en la barra de título cuando se inicia la actividad en android
  • TabLayout Icono que no se muestra
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.