Vista de animación de pulso en Android

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 .

Pulse Animation View in Android Sample GIF

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: 

Publicación traducida automáticamente

Artículo escrito por annianni 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 *