Animaciones de Android usando Java

La animación es,

Tabla de Atributos

ATRIBUTOS XML DESCRIPCIÓN
Android: identificación Establece una identificación única de la vista
Android: duración Se utiliza para especificar la duración de la animación.
android:desdeGrados Posición angular inicial (en grados)
android:aGrados Posición angular final (en grados)
android:desdeXScale Compensación de tamaño X inicial
android:toXScale Fin del desplazamiento de tamaño X
android:desdeYScale Compensación de tamaño Y inicial
android:toYScale Fin del desplazamiento de tamaño Y
Android: de Alpha Valor alfa inicial para la animación
(1,0 significa totalmente opaco y 0,0 significa totalmente transparente)
android:toAlfa Valor alfa final
android:desdeYDelta Cambio en la coordenada Y para aplicar al inicio de la animación
android:toYDelta Cambio en la coordenada Y para aplicar al final de la animación
Android: pivoteX Representa las coordenadas del eje X para hacer zoom desde el punto de inicio
Android: pivote Representa las coordenadas del eje Y para hacer zoom desde el punto de inicio
Android: interpolador Define la tasa de cambio de una animación.
android:comenzarCompensar El retraso se produce cuando se ejecuta una animación (en ms), una vez que se alcanza la hora de inicio

Cómo agregar animación en Android usando Java

Paso 1: Crear un nuevo proyecto

  • Inicie Android Studio (versión > 2.2)
  • Vaya a Archivo -> Nuevo -> Nuevo proyecto.
  • Seleccione Actividad vacía y haga clic en siguiente
  • Seleccione SDK mínimo como 21
  • Elija el idioma como Java y haga clic en el botón Finalizar.
  • Modifique los siguientes archivos XML y Java.

Paso 2: modificar el archivo activity_main.xml

En el archivo XML, agregamos ImageView , TextView y Button dentro de RelativeLayout .

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:id="@+id/RL1"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="200dp"
        android:layout_height="150dp"
        android:layout_below="@id/textView0"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dp"
        android:visibility="visible"
        android:src="@drawable/logo2" />
  
    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="4 common animations in android"
        android:layout_below="@id/imageView1"
        android:layout_marginTop="50dp"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:fontFamily="sans-serif"
        android:textSize="50px"/>
  
    <Button
        android:id="@+id/button1"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:text="Blink"
        android:layout_below="@id/textView1"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="40dp"/>
  
    <Button
        android:id="@+id/button2"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:text="Slide"
        android:layout_below="@id/textView1"
        android:layout_alignParentRight="true"
        android:layout_marginRight="50dp"
        android:layout_marginTop="40dp"/>
  
    <Button
        android:id="@+id/button3"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:text="Rotate"
        android:layout_below="@id/button1"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="30dp"/>
  
    <Button
        android:id="@+id/button4"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:text="Zoom"
        android:layout_below="@id/button2"
        android:layout_alignParentRight="true"
        android:layout_marginRight="50dp"
        android:layout_marginTop="30dp"/>
  
</RelativeLayout>

Paso 3: Agrega estos archivos XML al directorio anim

Después de modificar el diseño, crearemos archivos XML para animaciones. Así que primero crearemos una carpeta con el nombre anim . En esta carpeta, agregaremos los archivos XML que se utilizarán para producir las animaciones. Para que esto suceda, vaya a app/res , haga clic con el botón derecho y luego seleccione Directorio de recursos de Android y asígnele el nombre anim. 

Algunos tipos comunes de animaciones en Android son,

  1. Parpadeo: oculta el objeto durante 0,6 a 1 segundo.
  2. Deslizar: mueva el objeto vertical u horizontalmente a su eje.
  3. Girar: gira el objeto en sentido horario o antihorario.
  4. Zoom: acerque o aleje el objeto en los ejes X e Y.

blinks.xml

<?xml version="1.0" encoding="utf-8"?>
<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="700"
      android:repeatMode="reverse"
      android:repeatCount="infinite"/>
</set>

rotate.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
  
   <rotate xmlns:android="http://schemas.android.com/apk/res/android"
      android:fromDegrees="0"
      android:toDegrees="360"
      android:pivotX="50%"
      android:pivotY="50%"
      android:duration="2500" >
   </rotate>
     
   <rotate xmlns:android="http://schemas.android.com/apk/res/android"
      android:startOffset="5000"
      android:fromDegrees="360"
      android:toDegrees="0"
      android:pivotX="50%"
      android:pivotY="50%"
      android:duration="2500" >
   </rotate>
     
</set>

slides.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
   android:fillAfter="true" >
     
   <scale
      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>

zoom.xml

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

Paso 4: Modificar MainActivity.java

Para realizar una animación en Android, tenemos que llamar a una función estática loadAnimation() de la clase AnimationUtils . Obtenemos el resultado en una instancia del objeto de animación. Sintaxis para crear un objeto de animación:

Objeto de animación = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.ANIMATIONFILE);

Para aplicar la animación anterior a un objeto (digamos en una imagen), debemos llamar al método startAnimation() del objeto. Sintaxis para llamar al método:

ImageView imagen = findViewById(R.id.imageID); 

imagen.startAnimation(objeto);

Métodos de la clase de animación:

Método

Descripción

startAnimation(objeto) Comienza la animación
setDuration(larga duración) Establece la duración de la animación.
obtenerDuración() Obtiene la duración de la animación.
final() Finaliza la animación
cancelar() Cancela la animación

Java

import androidx.appcompat.app.AppCompatActivity;
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.ImageView;
  
public class MainActivity extends AppCompatActivity {
    ImageView logo;
    Button blink, slide, rotate, zoom;
  
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // GFG logo
        logo = findViewById(R.id.imageView1);
  
        // blink button
        blink = findViewById(R.id.button1);
  
        // slide button
        slide = findViewById(R.id.button2);
  
        // rotate button
        rotate = findViewById(R.id.button3);
  
        // zoom button
        zoom = findViewById(R.id.button4);
  
        // blink button listener
        blink.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view)
            {
                // call a static function loadAnimation()
                // of the class AnimationUtils
                Animation object
                    = AnimationUtils
                          .loadAnimation(
                              getApplicationContext(),
  
                              // blink file is in anim folder
                              R.anim.blinks);
                // call the startAnimation method
                logo.startAnimation(object);
            }
        });
        // slide button listener
        slide.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view)
            {
                // call a static function loadAnimation()
                // of the class AnimationUtils
                Animation object
                    = AnimationUtils
                          .loadAnimation(
  
                              getApplicationContext(),
  
                              // slide file is in anim folder
                              R.anim.slide);
  
                // call the startAnimation method
                logo.startAnimation(object);
            }
        });
  
        // rotate button listener
        rotate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view)
            {
                // call a static function loadAnimation()
                // of the class AnimationUtils
                Animation object
                    = AnimationUtils
                          .loadAnimation(
                              getApplicationContext(),
  
                              // rotate file is in anim folder
                              R.anim.rotate);
  
                // call the startAnimation method
                logo.startAnimation(object);
            }
        });
  
        // zoom button listener
        zoom.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view)
            {
                // call a static function loadAnimation()
                // of the class AnimationUtils
                Animation object
                    = AnimationUtils
                          .loadAnimation(
                              getApplicationContext(),
  
                              // zoom file is in anim folder
                              R.anim.zoom);
  
                // call the startAnimation method
                logo.startAnimation(object);
            }
        });
    }
}

Salida: ejecutar en el emulador
 

Publicación traducida automáticamente

Artículo escrito por master_abhig y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *