Animación de escala de Android en la vista

Quiero utilizar ScaleAnimation (programmatically no en xml) para cambiar la altura para ver de 0 a 60% de la altura de los padres. El ancho de la vista es constante y es 50px. La vista está vacía sólo el color de fondo está establecido.

¿Puede alguien darme código para scaleAnim usando ScaleAnimation de código.

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/layContainer > <View android:layout_width="50px" android:layout_height="fill_parent" android:id="@+id/viewContainer" android:background:"#00f00" /> </LinearLayout> ScaleAnimation scaleAnim = new ScaleAnimation(...); 

Ver antes y después de la animación

Vista antes y después de la animación.

Aquí hay un recorte de código para hacer exactamente eso.

 public void scaleView(View v, float startScale, float endScale) { Animation anim = new ScaleAnimation( 1f, 1f, // Start and end values for the X axis scaling startScale, endScale, // Start and end values for the Y axis scaling Animation.RELATIVE_TO_SELF, 0f, // Pivot point of X scaling Animation.RELATIVE_TO_SELF, 1f); // Pivot point of Y scaling anim.setFillAfter(true); // Needed to keep the result of the animation anim.setDuration(1000); v.startAnimation(anim); } 

El constructor ScaleAnimation utilizado aquí toma 8 args, 4 relacionados con el manejo de la escala X que no nos importa (1f, 1f, ... Animation.RELATIVE_TO_SELF, 0f, ...) .

Los otros 4 args son para la escala Y que nos importa.

startScale, endScale – En tu caso, 0f, 0.6f .

Animation.RELATIVE_TO_SELF, 1f – Especifica dónde se contrae el encogimiento de la vista (denominado pivote en la documentación). Aquí, fijamos el valor del flotador a 1f porque queremos que la animación comience a crecer la barra desde la parte inferior. Si queríamos que creciera hacia abajo desde la cima, 0f .

Finalmente, e igualmente importante, es la llamada a anim.setFillAfter(true) . Si desea que el resultado de la animación se mantenga al final después de completar la animación, debe ejecutarla en el animador antes de ejecutar la animación.

Así que en su caso, puede hacer algo como esto:

 View v = findViewById(R.id.viewContainer); scaleView(v, 0f, .6f); 

Pruebe este código para crear la animación Escala sin utilizar xml

 ScaleAnimation animation = new ScaleAnimation(fromXscale, toXscale, fromYscale, toYscale, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); 

En XML, esto es lo que uso para lograr el mismo resultado. Puede que esto sea más intuitivo.

scale_up.xml

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:duration="200" android:fromXScale="1.0" android:fromYScale="0.0" android:pivotX="50%" android:pivotY="100%" android:toXScale="1.0" android:toYScale="1.0" /> </set> 

scale_down.xml

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:duration="200" android:fromXScale="1.0" android:fromYScale="1.0" android:pivotX="50%" android:pivotY="100%" android:toXScale="1.0" android:toYScale="0.0" /> </set> 

Ver la animación en el eje X es de 1.0 -> 1.0 que significa que no tiene ningún aumento de escala en esa dirección y se mantiene en el ancho total, mientras que en el eje Y se obtiene 0.0 -> 1.0 escalado, como se muestra en el Gráfico en la pregunta. Espero que esto ayude a alguien.

  • Lista de animación no funciona en Android 5.0 (Lollipop)
  • Vista web de Android con GSAP: intenta eliminar la referencia local que no sea JNI,
  • Android aplicar color a la animación alfa
  • ¿Por qué se cortan las animaciones de Vista a veces?
  • AnimatorSet con setStartDelay llama a onAnimationStart
  • Comprobar si AnimatorSet ha terminado la animación?
  • Creación de una presentación de diapositivas que desvanecen imágenes entre sí y transforman
  • Cómo crear una animación de diapositivas en Android?
  • Uso de la función "con"
  • Cómo hacer la animación de la barra de herramientas como la aplicación Contactos en Lollipop
  • ¿Cómo crear una vista similar al área de notificación del sistema en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.