Un ProgressDialog muestra una ventana con un texto y una barra de progreso que indica el tiempo que tarda una tarea en realizarse para luego cerrarse automáticamente. También puede mostrarse una barra de progreso de forma circular.
Para este ejemplo usamos Android Studio, el tiempo estimado para su desarrollo es de 15 minutos.
El proyecto consiste en un botón que al ser presionado mostrara un ProgressDialog, realizara unas tareas en «N» tiempo para luego cerrarse automáticamente.
Partimos de un proyecto base de android con las siguientes características:
El Layout
<?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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="org.example.ventanadeprogreso.MainActivity"> <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Mostrar barra de progreso" /> </RelativeLayout>
Código MainAcivity
package org.example.ventanadeprogreso; import android.app.ProgressDialog; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private ProgressDialog barProgressDialog; private Handler updateBarHandler; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); updateBarHandler = new Handler(); button.setOnClickListener( new View.OnClickListener() { public void onClick(View view) { barraDeProgreso(view); } }); } /** * Barra de progreso * */ public void barraDeProgreso(View view){ barProgressDialog = new ProgressDialog(MainActivity.this); barProgressDialog.setTitle("Procesando"); barProgressDialog.setMessage("Por favor espere ..."); barProgressDialog.setProgressStyle(barProgressDialog.STYLE_HORIZONTAL); barProgressDialog.setProgress(0); barProgressDialog.setMax(10); barProgressDialog.show(); new Thread(new Runnable(){ @Override public void run(){ for(int i = 0; i<=barProgressDialog.getMax();i++){ //tarea a realizar trabajando(); //actualiza barra de progreso updateBarHandler.post(new Runnable() { public void run(){ barProgressDialog.incrementProgressBy(1); } }); } barProgressDialog.dismiss(); } }).start(); } /** * Emula una tarea que dura X tiempo * */ private void trabajando(){ try{ Thread.sleep((int) Math.floor(Math.random()*(900)+100)); }catch(Exception ex){ } } }
Al ejecutar el proyecto y presionar el botón tendremos lo siguiente:
enjoy!!!
Un JSON Web Token es un estandar abierto para la creación de Token de Acceso el cual permite firmar digitalmente informa[...]
Android cuenta con una serie de herramientas en su API para el trabajo con gráficos, entre estos podemos mencionar: Bitm[...]
JTable es un componente swing java que nos permite mostrar datos en una tabla de una base de datos, sin embargo a difere[...]
En este post veremos un ejemplo sencillo de encriptación/desencriptación simétrica que el API de Java nos permite realiz[...]
En la pagina de Taringa, existe una sección donde se puede ver lo que pasa en ese foro al momento, «Taringa! en vivo» se[...]
¿Quien no ha querido programar un juego? creo que la mayoría si no es que todos los que conocen de programación sin impo[...]