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,
- Parpadeo: oculta el objeto durante 0,6 a 1 segundo.
- Deslizar: mueva el objeto vertical u horizontalmente a su eje.
- Girar: gira el objeto en sentido horario o antihorario.
- 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