La animación es el proceso de agregar un efecto de movimiento a cualquier vista, imagen o texto. Con la ayuda de una animación, puede agregar movimiento o cambiar la forma de una vista específica. La animación en Android generalmente se usa para darle a su interfaz de usuario una apariencia rica. Las animaciones son básicamente de tres tipos de la siguiente manera:
- Animación de propiedades
- Ver animación
- Animación Dibujable
1. Animación de propiedades
Property Animation es uno de los marcos robustos que permite animar casi todo. Esta es una de las animaciones potentes y flexibles que se introdujo en Android 3.0. La animación de propiedades se puede usar para agregar cualquier animación en CheckBox , RadioButtons y widgets que no sean cualquier vista.
2. Ver animación
Ver animación se puede usar para agregar animación a una vista específica para realizar una animación interpolada en las vistas. La animación interpolada calcula la información de la animación, como el tamaño, la rotación, el punto de inicio y el punto final. Estas animaciones son más lentas y menos flexibles. Se puede usar un ejemplo de Ver animación si queremos expandir un diseño específico en ese lugar, podemos usar Ver animación. El ejemplo de View Animation se puede ver en Expandable RecyclerView.
3. Animación Dibujable
Drawable Animation se utiliza si desea animar una imagen sobre otra. La forma simple de entender cómo animar dibujables es cargar la serie de dibujables una tras otra para crear una animación. Un ejemplo simple de animación dibujable se puede ver en la pantalla de bienvenida de muchas aplicaciones en la animación del logotipo de las aplicaciones.
Métodos importantes de animación
Métodos |
Descripción |
---|---|
iniciarAnimación() | Este método iniciará la animación. |
borrarAnimación() | Este método borrará la animación que se ejecuta en una vista específica. |
Ejemplo
Ahora veremos el Ejemplo Simple para agregar animaciones a ImageView .
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.
Paso 2: trabajar con el archivo strings.xml
Strings.xml se puede encontrar en la aplicación > res > valores > strings.xml . A continuación se muestra el fragmento del archivo strings.xml .
XML
<resources> <string name="app_name">GFG App</string> <string name="blink">BLINK</string> <string name="clockwise">ROTATE</string> <string name="fade">FADE</string> <string name="move">MOVE</string> <string name="slide">SLIDE</string> <string name="zoom">ZOOM</string> <string name="stop_animation">STOP ANIMATION</string> <string name="course_rating">Course Rating</string> <string name="course_name">Course Name</string> </resources>
Paso 3: agregue el repositorio de Google en el archivo build.gradle del proyecto de la aplicación si no está allí de manera predeterminada
script de compilación {
repositorios {
Google()
mavenCentral()
}
Todos los componentes de Jetpack están disponibles en el repositorio de Google Maven, inclúyelos en el archivo build.gradle
todos los proyectos {
repositorios {
Google()
mavenCentral()
}
}
Paso 4: trabajar con el archivo activity_main.xml
Cree ImageView en activity_main.xml junto con botones que agregarán animación a la vista. Vaya a la aplicación > res > diseño > actividad_principal.xml . A continuación se muestra el código para el archivo activity_main.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <ImageView android:id="@+id/imageview" android:layout_width="200dp" android:layout_height="200dp" android:layout_centerHorizontal="true" android:layout_marginTop="40dp" android:contentDescription="@string/app_name" android:src="@drawable/gfgimage" /> <LinearLayout android:id="@+id/linear1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/imageview" android:layout_marginTop="30dp" android:orientation="horizontal" android:weightSum="3"> <!--To start the blink animation of the image--> <Button android:id="@+id/BTNblink" style="@style/TextAppearance.AppCompat.Widget.Button" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_weight="1" android:padding="3dp" android:text="@string/blink" android:textColor="@color/white" /> <!--To start the rotate animation of the image--> <Button android:id="@+id/BTNrotate" style="@style/TextAppearance.AppCompat.Widget.Button" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_weight="1" android:padding="3dp" android:text="@string/clockwise" android:textColor="@color/white" /> <!--To start the fading animation of the image--> <Button android:id="@+id/BTNfade" style="@style/TextAppearance.AppCompat.Widget.Button" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_weight="1" android:padding="3dp" android:text="@string/fade" android:textColor="@color/white" /> </LinearLayout> <LinearLayout android:id="@+id/linear2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/linear1" android:layout_marginTop="30dp" android:orientation="horizontal" android:weightSum="3"> <!--To start the move animation of the image--> <Button android:id="@+id/BTNmove" style="@style/TextAppearance.AppCompat.Widget.Button" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_weight="1" android:padding="3dp" android:text="@string/move" android:textColor="@color/white" /> <!--To start the slide animation of the image--> <Button android:id="@+id/BTNslide" style="@style/TextAppearance.AppCompat.Widget.Button" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_weight="1" android:padding="3dp" android:text="@string/slide" android:textColor="@color/white" /> <!--To start the zoom animation of the image--> <Button android:id="@+id/BTNzoom" style="@style/TextAppearance.AppCompat.Widget.Button" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margin="10dp" android:layout_weight="1" android:padding="3dp" android:text="@string/zoom" android:textColor="@color/white" /> </LinearLayout> <!--To stop the animation of the image--> <Button android:id="@+id/BTNstop" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/linear2" android:layout_marginLeft="30dp" android:layout_marginTop="30dp" android:layout_marginRight="30dp" android:text="@string/stop_animation" /> </RelativeLayout>
Paso 5: cree 6 tipos diferentes de animación para ImageView
Para crear nuevas animaciones tenemos que crear un nuevo directorio para almacenar todas nuestras animaciones. Navegue a la aplicación > res > Haga clic con el botón derecho en res >> Nuevo >> Directorio >> Nombre su directorio como «anim» . Dentro de este directorio, crearemos nuestras animaciones. Para crear un nuevo anim, haga clic con el botón derecho en el directorio anim >> Archivo de recursos de animación y asigne el nombre a su archivo. A continuación se muestra el fragmento de código para 6 animaciones diferentes.
1) Animación de parpadeo
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="500" android:repeatMode="reverse" android:repeatCount="infinite"/> </set>
2) Animación de desvanecimiento
XML
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <!-- duration is the time for which animation will work--> <alpha android:duration="1000" android:fromAlpha="0" android:toAlpha="1" /> <alpha android:duration="1000" android:fromAlpha="1" android:startOffset="2000" android:toAlpha="0" /> </set>
3) Mover Animación
XML
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator" android:fillAfter="true"> <translate android:fromXDelta="0%p" android:toXDelta="75%p" android:duration="700" /> </set>
4) Rotar Animación
XML
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <rotate android:duration="6000" android:fromDegrees="0" android:pivotX="50%" android:pivotY="50%" android:toDegrees="360" /> <rotate android:duration="6000" android:fromDegrees="360" android:pivotX="50%" android:pivotY="50%" android:startOffset="5000" android:toDegrees="0" /> </set>
5) Animación de diapositivas
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>
6) Zoom de animación
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>
Paso 6: trabajar con el archivo MainActivity.java
Agregue animación a ImageView haciendo clic en un botón específico. Vaya a la aplicación > java > el nombre del paquete de su aplicación >> MainActivity.java .
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 imageView; Button blinkBTN, rotateBTN, fadeBTN, moveBTN, slideBTN, zoomBTN, stopBTN; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = findViewById(R.id.imageview); blinkBTN = findViewById(R.id.BTNblink); rotateBTN = findViewById(R.id.BTNrotate); fadeBTN = findViewById(R.id.BTNfade); moveBTN = findViewById(R.id.BTNmove); slideBTN = findViewById(R.id.BTNslide); zoomBTN = findViewById(R.id.BTNzoom); stopBTN = findViewById(R.id.BTNstop); blinkBTN.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // To add blink animation Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.blink_animation); imageView.startAnimation(animation); } }); rotateBTN.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // To add rotate animation Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotate_animation); imageView.startAnimation(animation); } }); fadeBTN.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // To add fade animation Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_animation); imageView.startAnimation(animation); } }); moveBTN.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // To add move animation Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.move_animation); imageView.startAnimation(animation); } }); slideBTN.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // To add slide animation Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_animation); imageView.startAnimation(animation); } }); zoomBTN.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // To add zoom animation Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.zoom_animation); imageView.startAnimation(animation); } }); stopBTN.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // To stop the animation going on imageview imageView.clearAnimation(); } }); } }
Nota: Los elementos de diseño y las strings se pueden encontrar en la carpeta de elementos de diseño y en el archivo strings.xml. Los dibujables se pueden encontrar en la aplicación > res > dibujable .
Producción:
Publicación traducida automáticamente
Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA