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
<ProgressBarandroid: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());@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);progressBarH = findViewById(R.id.progressBarH);// Simulamos un proceso de carga automáticamentenew Thread(new Runnable() {@Overridepublic void run() {while (progressStatus < 100) {progressStatus += 1;handler.post(new Runnable() {@Overridepublic 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).
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.
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
Publicar un comentario