En este artículo, vamos a ver la función Pulse Animation. Esta característica se puede usar si estamos descargando algo del servidor. Luego, hasta el momento en que se está descargando, podemos agregar esta función. A continuación se proporciona un GIF de muestra para tener una idea de lo que vamos a hacer en este artículo. Tenga en cuenta que vamos a implementar este proyecto utilizando el lenguaje Java .
Implementación paso a paso
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: Agregar dependencia
Navegue a Gradle Scripts > build.gradle(Module:app) y agregue la siguiente dependencia en la sección de dependencias.
implementación ‘pl.bclogic:pulsator4droid:1.0.3’
Paso 3: trabajar con el archivo activity_main.xml
Estas son las siguientes propiedades para cambiar el parámetro de diseño
- pulse_count : Representa el número de círculos de pulso
- pulse_duration : representa la duración en milisegundos de un solo pulso
- pulse_repeat : representa el número de repeticiones de pulso. Cero significa INFINITO
- pulse_color : Representa los colores de pulso ARGB
- pulse_startFromScratch : establece en verdadero si la animación debe comenzar desde el principio
- pulse_interpolator : establece el tipo de interpolador utilizado para la animación. Los valores aceptados son “ Lineal ”, “ Acelerar ”, “ Decelerar ”, “ AcelerarDecelerar ”.
aplicación > res > diseño > actividad_principal.xml actividad_principal.xml
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:layout_height="match_parent" android:layout_gravity="center" android:gravity="center" android:orientation="vertical" android:padding="16sp" tools:context=".MainActivity"> <pl.bclogic.pulsator4droid.library.PulsatorLayout android:id="@+id/pulsator" android:layout_width="326dp" android:layout_height="446dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="89dp" app:pulse_color="#CA3D3D" app:pulse_count="1" app:pulse_duration="1800" app:pulse_interpolator="Linear" app:pulse_repeat="0" app:pulse_startFromScratch="false"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:src="@mipmap/ic_launcher_round" /> </pl.bclogic.pulsator4droid.library.PulsatorLayout> <LinearLayout android:id="@+id/kl" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/pulsator" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Count" /> <SeekBar android:id="@+id/count" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="4" android:min="1" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/kl" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Duration" /> <SeekBar android:id="@+id/duration" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/count" android:max="7" android:min="1" /> </LinearLayout> </RelativeLayout>
Paso 4: trabajar con el archivo MainActivity.java
Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.
Java
import android.os.Bundle; import android.widget.SeekBar; import androidx.appcompat.app.AppCompatActivity; import pl.bclogic.pulsator4droid.library.PulsatorLayout; public class MainActivity extends AppCompatActivity { SeekBar count, duration; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // initialise tha layout PulsatorLayout pulsator = (PulsatorLayout) findViewById(R.id.pulsator); pulsator.start(); count = findViewById(R.id.count); duration = findViewById(R.id.duration); // on change in seekbar value count.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { // change the count pulsator.setCount(i); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); // on change in seekbar value duration.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { // change the duration pulsator.setDuration(i); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); } @Override protected void onStart() { super.onStart(); } }
Producción: