Tipos de Animaciones en Android

Clase 90 de 96Curso Definitivo de Android 2016

Uno de los grandes principios de Material Design es mantener la interacción con el usuario, es decir, todo en nuestra UI debe ser interactiva, al utilizar una interfaz en nuestra app debe significar un acción y reacción, la aplicación debe ser capaz de responder a la interacción de los usuarios.

A partir de estas "nuevas" métricas de diseño, Android introdujo una serie de clases y métodos para crear animaciones en nuestras vistas.

Android tiene esencialmente 3 formas de crear animaciones:

  • Animaciones Drawable
  • Animación de View's
  • Animaciones de Propiedades

Esta vez aprenderemos de qué se trata cada una y cuándo utilizarlas.

Animaciones Drawable

Este tipo de animación es de las más secillas y se enfoca en recursos Drawable que tienen una secuencia de imagenes como un Flip Book

En donde debemos tener la secuencia de imagenes en la carpeta de recursos drawable. En el siguiente capítulo aprenderemos a hacer estas.

Animaciones de View's

También se conocen como Animaciones Tween que proviene del término "in between" (intermedio) esto porque para que se de la animación es calculada entre el punto inicial y final del view.

Podemos darle los siguientes comportamientos al view e incluso mezclarlos entre sí:

  • posición
  • tamaño
  • rotación
  • transparencia

Este tipo de animaciones pueden ser definidas con código Java o con recursos XML (res/anim), aunque es más recomendable hacerlo con XML pues es más portable y podemos reutilizarlo muy fácilmente.

Este es un ejemplo de animaciones como recurso en dónde se está definiendo la afectación de un objeto en su tamaño y en su rotación:

<set android:interpolator="@android:anim/decelerate_interpolator"> <scale android:fromXScale="1.4" android:toXScale="0.0" android:fromYScale="0.6" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:startOffset="700" android:duration="400" android:fillBefore="false" /> <rotate android:fromDegrees="0" android:toDegrees="-45" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:startOffset="700" android:duration="400" /> </set>

En los siguientes capítulos haremos animaciones de vistas mucho más profundo.

Animaciones de Propiedades

Este tipo de animación se introdujo en la versión 3.0 de Android (cuando llegaron las tablets y teníamos OpenGL en 3D) este se va a enfocar en animar las propiedades del objeto, es decir modificará al objeto en sí.

Este tipo es pensado para animaciones más complejas que van más allá de afectar el tamaño o la rotación de un elemento

Podemos modificar lo siguiente:

  • Duración El tiempo por default es de 300ms
  • Interpolación de tiempo Podemos específicar las propiedades que se cambiarán en función del tiempo
  • Recuento de repetición Controlamos las repeticiones, que se haga en un loop, reversa, cantidad de repeticiones, etc.
  • Conjuntos de animación Las animaciones se agrupan y se pueden reproducir juntas
  • Delay de Actualización de Frames Podemos especificar la frecuencia con la que deseamos mostrar cada frame, el valor por deafult por el momento es 10ms

Como ves este tipo de animaciones funcionan gracias a las librerías de Gráficos 2D y 3D que se han implementado en Android, comenzando con OpenGL y un API Framework de Android construdo con el Native Development Kit (NDK).

A pesar de que estas estan diseñadas a un bajo nivel de código, utilizar animaciones en Android es algo costoso, entonces tratemos de usarlas solo en momentos muy específicos de nuestra app, si lo que tienes en mente es construir un Video Juego en ese caso te recomiendo utilices otra herramienta como Unity, si este es tu punto de interés puedes tomar nuestra Carrera de Videojuegos en Platzi.