Progress Bar (Horizontal)

 Por: Ángel Cilli, Hanna Figueroa 

Progress Bar (Horizontal)


La Barra de Progreso (Horizontal) es un elemento importante de la interfaz de usuario que muestra el avance de una tarea en curso. Su principal objetivo es comunicar el progreso de una operación al usuario de manera visual y cuantitativa. La barra puede llenarse gradualmente de izquierda a derecha o viceversa, y suele ir acompañada de una etiqueta numérica que muestra el porcentaje completado. Se utiliza comúnmente para tareas como la carga de datos, la descarga de archivos, la instalación de aplicaciones y cualquier otra operación que requiera seguimiento visual del progreso.

Ejemplo de implementación:

  • Crear componente
XML
<ProgressBar
    android:id="@+id/progressBarH"
    style="?android:attr/progressBarStyleHorizontal"
    android:minHeight="24dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:indeterminate="true"/>

  • Programar funcionamiento
Java
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity {

    private ProgressBar progressBarH;
    private int progressStatus = 0;
    private Handler handler = new Handler(Looper.getMainLooper());

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        progressBarH = findViewById(R.id.progressBarH);

        // Simulamos un proceso de carga automáticamente
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (progressStatus < 100) {
                    progressStatus += 1;
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            progressBarH.setProgress(progressStatus);
                        }
                    });
                    try {
                        Thread.sleep(50); // Simula una operación en segundo plano
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();
    }
}
 

Funciones:

  • Configuración del progreso
La Barra de Progreso (Horizontal) se configura mediante el método setProgress(int progress, boolean animate)
El valor de progress varía de 0 a 100, y se puede actualizar en tiempo real para reflejar el avance de una tarea.
El parámetro animate permite animar la transición entre los valores de progreso, lo que proporciona una experiencia más suave para el usuario.
  • Personalización visual
Android Studio permite personalizar la apariencia de la Barra de Progreso (Horizontal) según las necesidades de diseño. Se puede cambiar el color de fondo, el color de relleno, el estilo de la barra, el tamaño y otros atributos visuales para que se integren con la estética de la aplicación.

android:progressDrawable 
Este atributo permite especificar un drawable personalizado para la barra de progreso. Se puede usar un archivo XML de drawable personalizado que defina la apariencia deseada.
 
android:indeterminateDrawable
Si se utiliza una Barra de Progreso (Horizontal) indeterminada, se puede personalizar su apariencia utilizando este atributo de manera similar al anterior.
 
android:progressTint
Este atributo sirve para cambiar el color de la Barra de Progreso (Horizontal).
android:background Este atributo controla el fondo de la Barra de Progreso (Horizontal).
  • Animación

La animación de la Barra de Progreso (Horizontal) se habilita al utilizar la opción animate en los métodos de configuración. Esto suaviza la transición visual entre diferentes estados de progreso y mejora la experiencia del usuario.

android:indeterminateDrawable
Este atributo permite especificar un drawable personalizado que se utilizará como animación de Barra de Progreso (Horizontal).
 
android:indeterminateDuration 
Define la duración de la animación en milisegundos.
 
android:indeterminateInterpolator 
Define el interpolador de la animación.
  • Eventos:

OnProgressChanged
Este evento se dispara cada vez que cambia el valor de progreso de la barra. Se puede ejecutar código específico en respuesta a cambios en el progreso. Por ejemplo, se puede actualizar un texto que muestre el progreso numérico o realizar acciones adicionales cuando se alcance un cierto hito de progreso.

OnCompletion
Aunque no es un evento predefinido de la Barra de Progreso (Horizontal), se puede implementar la lógica para detectar cuando la barra de progreso alcance el 100% de progreso y la tarea se complete. Esto generalmente se hace monitoreando el progreso mediante el evento OnProgressChanged y realizando acciones adicionales cuando el progreso alcanza su punto final.

Comentarios

Entradas más populares de este blog

Plantillas/Pantallas para proyectos

Android Studio - Widgets

SEEKBAR