Android Animation Example
Hola amigos continuamos aprendiendo poco a poco y vamos obteniendo mas conocimiento sobre Android y su desarrollo. Creamos aplicaciones cada día y vamos compartiendo todo el conocimiento nuevo con nuestra comunidad crecemos mas y aprendemos mas.En esta ocasión les traemos el tutorial de Animaciones en Android crear efectos para nuestras aplicaciones y les mostrare como hacerlo.
Crear Proyecto Android Animation Example (Aquí)
Crearemos nuestra aplicación para desarrollar este ejemplo de Animaciones en Android.Animation Layout Design Example
Crearemos el diseño de nuestra aplicación para desarrollar las Animaciones de Android. Y comenzaremos creando los Layout de cada efecto que vamos a enseñar.La animación en aplicaciones de Android es el proceso de crear movimiento y cambio de forma. Las formas básicas de animación que veremos en este tutorial son:
- Fade In Animation
- Fade Out Animation
- Cross Fading Animation
- Blink Animation
- Zoom In Animation
- Zoom Out Animation
- Rotate Animation
- Move Animation
- Slide Up Animation
- Slide Down Animation
- Bounce Animation
- Sequential Animation
- Together Animation
Android Animation Layout
Creamos un directorio de recursos bajo el nombre de la carpeta res anim para mantener todos los archivos xml que contienen la lógica de la animación. Lo que sigue es un archivo xml de muestra que muestra una lógica de código de animación de Android.
sample_animation.xml
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:duration="300"
android:fillAfter="true"
android:fromXScale="0.0"
android:fromYScale="0.0"
android:toXScale="1.0"
android:toYScale="1.0" />
android: interpolator: Es la tasa de cambio en la animación. Podemos definir nuestros propios interpoladores usando el tiempo como la restricción. En el código xml anterior, se asigna un interpolador incorporado
android: duration: duración de la animación en la que debe completarse la animación. Son 300ms aquí. Esta es generalmente la duración ideal para mostrar la transición en la pantalla.
El inicio y el final de la animación se establecen usando:
TRANSFORMATION: es la transformación que queremos especificar. En nuestro caso, comenzamos con una escala xey de 0 y terminamos con una escala xey de 1
android: fillAfter: property especifica si la vista debe estar visible u oculta al final de la animación. Lo hemos establecido visible en el código anterior. Si se establece en falso, el elemento cambia a su estado anterior después de la animación
android: startOffset: es el tiempo de espera antes de que comience una animación. Esta propiedad se usa principalmente para realizar múltiples animaciones de forma secuencial
android: repeatMode: esto es útil cuando quieres que la animación se repita
android: repeatCount: Esto define el número de repeticiones en la animación. Si establecemos este valor en infinito, la animación se repetirá infinitamente
android: duration: duración de la animación en la que debe completarse la animación. Son 300ms aquí. Esta es generalmente la duración ideal para mostrar la transición en la pantalla.
El inicio y el final de la animación se establecen usando:
android:fromTRANSFORMATION
android:toTRANSFORMATION
TRANSFORMATION: es la transformación que queremos especificar. En nuestro caso, comenzamos con una escala xey de 0 y terminamos con una escala xey de 1
android: fillAfter: property especifica si la vista debe estar visible u oculta al final de la animación. Lo hemos establecido visible en el código anterior. Si se establece en falso, el elemento cambia a su estado anterior después de la animación
android: startOffset: es el tiempo de espera antes de que comience una animación. Esta propiedad se usa principalmente para realizar múltiples animaciones de forma secuencial
android: repeatMode: esto es útil cuando quieres que la animación se repita
android: repeatCount: Esto define el número de repeticiones en la animación. Si establecemos este valor en infinito, la animación se repetirá infinitamente
Fade In Animation
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true" >
<alpha
android:duration="1000"
android:fromAlpha="0.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:toAlpha="1.0" />
</set>
Aquí alpha hace referencia a la opacidad de un objeto. Un objeto con valores alfa más bajos es más transparente, mientras que un objeto con valores alfa más altos es menos transparente, más opaco. El fundido en la animación no es más que aumentar el valor alfa de 0 a 1.
Fade Out Animation
fade_out.xml<set xmlns: android = "http://schemas.android.com/apk/res/android"
android: fillAfter = "true">
<alpha
android: duration = "1000"
android: fromAlpha = "1.0"
android: interpolator = "@ android: anim / accelerate_interpolator"
android: toAlpha = "0.0" />
</set>
El desvanecimiento de la animación de Android es exactamente lo contrario al desvanecimiento, donde tenemos que disminuir el valor alfa de 1 a 0.Cross Fading Animation
El fundido cruzado se está desvaneciendo en la animación en un TextView mientras que el otro TextView se está desvaneciendo. Esto se puede hacer utilizando fade_in.xml y fade_out.xml en los dos TextViews. El código será discutido en MainActivity.javaBlink Animation
blink.xml<set xmlns: android = "http://schemas.android.com/apk/res/android">
<alpha android: fromAlpha = "0.0"
android: toAlpha = "1.0"
android: interpolator = "@ android: anim / accelerate_interpolator"
android: duration = "600"
android: repeatMode = "reverse"
android: repeatCount = "infinito" />
</set>
Aquí, el fundido de entrada y el de salida se realizan infinitamente en el modo inverso cada vez.Zoom en la animación
zoom_in.xml
<set xmlns: android = "http://schemas.android.com/apk/res/android"
android: fillAfter = "true">
<escala
xmlns: android = "http://schemas.android.com/apk/res/android"
android: duration = "1000"
android: fromXScale = "1"
android: fromYScale = "1"
android: pivotX = "50%"
android: pivotY = "50%"
android: toXScale = "3"
android: toYScale = "3">
</scale>
</set>
Usamos pivotX = "50%" y pivotY = "50%" para realizar el zoom desde el centro del elemento.Alejar la animación
zoom_out.xml<set xmlns: android = "http://schemas.android.com/apk/res/android"
android: fillAfter = "true">
<escala
xmlns: android = "http://schemas.android.com/apk/res/android"
android: duration = "1000"
android: fromXScale = "1.0"
android: fromYScale = "1.0"
android: pivotX = "50%"
android: pivotY = "50%"
android: toXScale = "0.5"
android: toYScale = "0.5">
</scale>
</set>
Tenga en cuenta que android: from y android: to son opuestos en zoom_in.xml y zoom_out.xml.Girar animación
rotate.xml<set xmlns: android = "http://schemas.android.com/apk/res/android">
<rotar android: fromDegrees = "0"
android: toDegrees = "360"
android: pivotX = "50%"
android: pivotY = "50%"
android: duration = "600"
android: repeatMode = "reiniciar"
android: repeatCount = "infinito"
android: interpolator = "@ android: anim / cycle_interpolator" />
</set>
Aquí se usa una etiqueta from / toDegrees para especificar los grados y se usa un interpolador cíclico.Mover la animación
move.xml
<establecer
xmlns: android = "http://schemas.android.com/apk/res/android"
android: interpolator = "@ android: anim / linear_interpolator"
android: fillAfter = "true">
<traducir
android: fromXDelta = "0% p"
android: toXDelta = "75% p"
android: duration = "800" />
</set>
Slide Up Animation
slide_up.xml
<set xmlns: android = "http://schemas.android.com/apk/res/android"
android: fillAfter = "true">
<escala
android: duration = "500"
android: fromXScale = "1.0"
android: fromYScale = "1.0"
android: interpolator = "@ android: anim / linear_interpolator"
android: toXScale = "1.0"
android: toYScale = "0.0" />
</set>
Se logra configurando android: fromYScale = "1.0" y android: toYScale = "0.0" dentro de la etiqueta de la escala.Deslizar hacia abajo la animación
slide_down.xml
<set xmlns: android = "http://schemas.android.com/apk/res/android"
android: fillAfter = "true">
<escala
android: duration = "500"
android: fromXScale = "1.0"
android: fromYScale = "0.0"
android: toXScale = "1.0"
android: toYScale = "1.0" />
</set>
Esto es todo lo contrario de slide_up.xml.Animación de rebote
bounce.xml
<set xmlns: android = "http://schemas.android.com/apk/res/android"
android: fillAfter = "true"
android: interpolator = "@ android: anim / bounce_interpolator">
<escala
android: duration = "500"
android: fromXScale = "1.0"
android: fromYScale = "0.0"
android: toXScale = "1.0"
android: toYScale = "1.0" />
</set>
Aquí el interpolador de rebote se usa para completar la animación en forma de rebote.Animación Secuencial
sequential.xml
<set xmlns: android = "http://schemas.android.com/apk/res/android"
android: fillAfter = "true"
android: interpolator = "@ android: anim / linear_interpolator">
<! - Mover ->
<traducir
android: duration = "800"
android: fillAfter = "true"
android: fromXDelta = "0% p"
android: startOffset = "300"
android: toXDelta = "75% p" />
<traducir
android: duration = "800"
android: fillAfter = "true"
android: fromYDelta = "0% p"
android: startOffset = "1100"
android: toYDelta = "70% p" />
<traducir
android: duration = "800"
android: fillAfter = "true"
android: fromXDelta = "0% p"
android: startOffset = "1900"
android: toXDelta = "- 75% p" />
<traducir
android: duration = "800"
android: fillAfter = "true"
android: fromYDelta = "0% p"
android: startOffset = "2700"
android: toYDelta = "- 70% p" />
<! - Girar 360 grados ->
<rotar
android: duration = "1000"
android: fromDegrees = "0"
android: interpolator = "@ android: anim / cycle_interpolator"
android: pivotX = "50%"
android: pivotY = "50%"
android: startOffset = "3800"
android: repeatCount = "infinito"
android: repeatMode = "reiniciar"
android: toDegrees = "360"/>
</set>
Aquí se usa un android: startOffset diferente de las transiciones para mantenerlas secuenciales.Juntos animación
together.xml
<set xmlns: android = "http://schemas.android.com/apk/res/android"
android: fillAfter = "true"
android: interpolator = "@ android: anim / linear_interpolator">
<! - Mover ->
<escala
xmlns: android = "http://schemas.android.com/apk/res/android"
android: duration = "4000"
android: fromXScale = "1"
android: fromYScale = "1"
android: pivotX = "50%"
android: pivotY = "50%"
android: toXScale = "4"
android: toYScale = "4">
</ scale>
<! - Girar 180 grados ->
<rotar
android: duration = "500"
android: fromDegrees = "0"
android: pivotX = "50%"
android: pivotY = "50%"
android: repeatCount = "infinito"
android: repeatMode = "reiniciar"
android: toDegrees = "360"/>
</set>
Aquí android: startOffset se elimina para permitir que sucedan simultáneamente.
Ahora diseñaremos el main_activity.xml para nuestro ejemplo de Animación en Android.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btnFadeIn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:text="Fade In" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Fade In"
android:id="@+id/txt_fade_in"
android:layout_alignBottom="@+id/btnFadeIn"
android:layout_alignLeft="@+id/txt_fade_out"
android:layout_alignStart="@+id/txt_fade_out" />
<Button
android:id="@+id/btnFadeOut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/btnFadeIn"
android:text="Fade Out" />
<Button
android:id="@+id/btnCrossFade"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/btnFadeOut"
android:text="Cross Fade" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Cross Fade In"
android:id="@+id/txt_out"
android:visibility="gone"
android:layout_gravity="center_horizontal"
android:layout_alignTop="@+id/txt_in"
android:layout_alignLeft="@+id/txt_in"
android:layout_alignStart="@+id/txt_in" />
<Button
android:id="@+id/btnBlink"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/btnCrossFade"
android:text="Blink" />
<Button
android:id="@+id/btnZoomIn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/btnBlink"
android:text="Zoom In" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Blink"
android:id="@+id/txt_blink"
android:layout_gravity="center_horizontal"
android:layout_alignBottom="@+id/btnBlink"
android:layout_alignLeft="@+id/txt_zoom_in"
android:layout_alignStart="@+id/txt_zoom_in" />
<Button
android:id="@+id/btnZoomOut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/btnZoomIn"
android:text="Zoom Out" />
<Button
android:id="@+id/btnRotate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/btnZoomOut"
android:text="Rotate" />
<Button
android:id="@+id/btnMove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/btnRotate"
android:text="Move" />
<Button
android:id="@+id/btnSlideUp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/btnMove"
android:text="Slide Up" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Fade Out"
android:id="@+id/txt_fade_out"
android:layout_gravity="center_horizontal"
android:layout_alignBottom="@+id/btnFadeOut"
android:layout_alignLeft="@+id/txt_in"
android:layout_alignStart="@+id/txt_in" />
<Button
android:id="@+id/btnSlideDown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/btnSlideUp"
android:text="Slide Down" />
<Button
android:id="@+id/btnBounce"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/btnSlideDown"
android:text="Bounce" />
<Button
android:id="@+id/btnSequential"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_below="@id/btnBounce"
android:text="Sequential Animation" />
<Button
android:id="@+id/btnTogether"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btnSequential"
android:layout_margin="5dp"
android:text="Together Animation" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Cross Fade Out"
android:id="@+id/txt_in"
android:layout_gravity="center_horizontal"
android:layout_alignBottom="@+id/btnCrossFade"
android:layout_alignLeft="@+id/txt_blink"
android:layout_alignStart="@+id/txt_blink" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Zoom In"
android:id="@+id/txt_zoom_in"
android:layout_alignBottom="@+id/btnZoomIn"
android:layout_alignLeft="@+id/txt_zoom_out"
android:layout_alignStart="@+id/txt_zoom_out" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Zoom Out"
android:id="@+id/txt_zoom_out"
android:layout_alignBottom="@+id/btnZoomOut"
android:layout_toRightOf="@+id/btnSequential"
android:layout_toEndOf="@+id/btnSequential" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Rotate"
android:id="@+id/txt_rotate"
android:layout_above="@+id/btnMove"
android:layout_toRightOf="@+id/btnSequential"
android:layout_toEndOf="@+id/btnSequential" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Move"
android:id="@+id/txt_move"
android:layout_alignBottom="@+id/btnMove"
android:layout_alignLeft="@+id/txt_slide_up"
android:layout_alignStart="@+id/txt_slide_up" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Slide Up"
android:id="@+id/txt_slide_up"
android:layout_alignBottom="@+id/btnSlideUp"
android:layout_toRightOf="@+id/btnSequential"
android:layout_toEndOf="@+id/btnSequential" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Slide Down"
android:id="@+id/txt_slide_down"
android:layout_alignBottom="@+id/btnSlideDown"
android:layout_alignLeft="@+id/txt_slide_up"
android:layout_alignStart="@+id/txt_slide_up" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Bounce"
android:id="@+id/txt_bounce"
android:layout_alignBottom="@+id/btnBounce"
android:layout_alignLeft="@+id/txt_slide_down"
android:layout_alignStart="@+id/txt_slide_down" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Sequential"
android:id="@+id/txt_seq"
android:layout_alignBottom="@+id/btnSequential"
android:layout_alignLeft="@+id/txt_bounce"
android:layout_alignStart="@+id/txt_bounce" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Together"
android:id="@+id/txt_tog"
android:layout_alignBottom="@+id/btnTogether"
android:layout_toRightOf="@+id/btnSequential"
android:layout_toEndOf="@+id/btnSequential" />
</RelativeLayout>
</ScrollView>
Ahora continuaremos con el código de nuestro ejemplo Animaciones en Android.
MainActivity Code Android Animation Example
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
// Declaramos los controles
Button btnFadeIn, btnFadeOut, btnCrossFade, btnBlink, btnZoomIn,
btnZoomOut, btnRotate, btnMove, btnSlideUp, btnSlideDown,
btnBounce, btnSequential, btnTogether;
Animation animFadeIn,animFadeOut,animBlink,animZoomIn,animZoomOut,animRotate
,animMove,animSlideUp,animSlideDown,animBounce,animSequential,animTogether,animCrossFadeIn,animCrossFadeOut;
TextView txtFadeIn,txtFadeOut,txtBlink,txtZoomIn,txtZoomOut,txtRotate,txtMove,txtSlideUp,
txtSlideDown,txtBounce,txtSeq,txtTog,txtIn,txtOut;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Declaramos las referencias de los controles utilizados
btnFadeIn = (Button) findViewById(R.id.btnFadeIn);
btnFadeOut = (Button) findViewById(R.id.btnFadeOut);
btnCrossFade = (Button) findViewById(R.id.btnCrossFade);
btnBlink = (Button) findViewById(R.id.btnBlink);
btnZoomIn = (Button) findViewById(R.id.btnZoomIn);
btnZoomOut = (Button) findViewById(R.id.btnZoomOut);
btnRotate = (Button) findViewById(R.id.btnRotate);
btnMove = (Button) findViewById(R.id.btnMove);
btnSlideUp = (Button) findViewById(R.id.btnSlideUp);
btnSlideDown = (Button) findViewById(R.id.btnSlideDown);
btnBounce = (Button) findViewById(R.id.btnBounce);
btnSequential = (Button) findViewById(R.id.btnSequential);
btnTogether = (Button) findViewById(R.id.btnTogether);
txtFadeIn=(TextView)findViewById(R.id.txt_fade_in);
txtFadeOut=(TextView)findViewById(R.id.txt_fade_out);
txtBlink=(TextView)findViewById(R.id.txt_blink);
txtZoomIn=(TextView)findViewById(R.id.txt_zoom_in);
txtZoomOut=(TextView)findViewById(R.id.txt_zoom_out);
txtRotate=(TextView)findViewById(R.id.txt_rotate);
txtMove=(TextView)findViewById(R.id.txt_move);
txtSlideUp=(TextView)findViewById(R.id.txt_slide_up);
txtSlideDown=(TextView)findViewById(R.id.txt_slide_down);
txtBounce=(TextView)findViewById(R.id.txt_bounce);
txtSeq=(TextView)findViewById(R.id.txt_seq);
txtTog=(TextView)findViewById(R.id.txt_tog);
txtIn=(TextView)findViewById(R.id.txt_in);
txtOut=(TextView)findViewById(R.id.txt_out);
animFadeIn = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fade_in);
animFadeIn = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fade_in);
// fade in
btnFadeIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtFadeIn.setVisibility(View.VISIBLE);
txtFadeIn.startAnimation(animFadeIn);
}
});
animFadeOut = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fade_out);
// fade out
btnFadeOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtFadeOut.setVisibility(View.VISIBLE);
txtFadeOut.startAnimation(animFadeOut);
}
});
animCrossFadeIn = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fade_in);
animCrossFadeOut = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.fade_out);
// cross fade
btnCrossFade.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtOut.setVisibility(View.VISIBLE);
// start fade in animation
txtOut.startAnimation(animCrossFadeIn);
// start fade out animation
txtIn.startAnimation(animCrossFadeOut);
}
});
animBlink = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.blink);
// blink
btnBlink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtBlink.setVisibility(View.VISIBLE);
txtBlink.startAnimation(animBlink);
}
});
animZoomIn = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.zoom_in);
// Zoom In
btnZoomIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtZoomIn.setVisibility(View.VISIBLE);
txtZoomIn.startAnimation(animZoomIn);
}
});
animZoomOut = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.zoom_out);
// Zoom Out
btnZoomOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtZoomOut.setVisibility(View.VISIBLE);
txtZoomOut.startAnimation(animZoomOut);
}
});
animRotate = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.rotate);
// Rotate
btnRotate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtRotate.startAnimation(animRotate);
}
});
animMove = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.move);
// Move
btnMove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtMove.startAnimation(animMove);
}
});
animSlideUp = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.slide_up);
// Slide Up
btnSlideUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtSlideUp.startAnimation(animSlideUp);
}
});
animSlideDown = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.slide_down);
// Slide Down
btnSlideDown.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtSlideDown.startAnimation(animSlideDown);
}
});
animBounce = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.bounce);
// Slide Down
btnBounce.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtBounce.startAnimation(animBounce);
}
});
animSequential = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.sequential);
// Sequential
btnSequential.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtSeq.startAnimation(animSequential);
}
});
animTogether = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.together);
// Together
btnTogether.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtTog.startAnimation(animTogether);
}
});
}
}
Y con esto quedaría listo y solo nos queda ejecutar nuestra aplicación
Crear Emulador AVD (Aquí)
Crearemos nuestro emulador para ver nuestras Animaciones en Android.Y listo cualquier duda que tengan sobre la Animación en Android dejen su comentario con gusto les responderemos.
Descargar
"FORTRAN no es una flor, sino una mala hierba - que es resistente, a veces florece y crece en todos los ordenadores."- Alan J. Perlis.
No hay comentarios:
Publicar un comentario