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!!!
Kotlin es un lenguaje de programación relativamente nuevo que ha ido ganando terreno en el desarrollo de aplicaciones pa[...]
De las pocas herramientas disponibles entre librerías, frameworks, engines, etc para el desarrollo de videojuegos en len[...]
Cuando se desarrolla aplicaciones por lo general uno no se detiene para agregar algunos efectos visuales que pueden ser[...]
En este post veremos como crear una aplicación de ayuda al usuario similar al extinto javahelp. Pero en esta oportunidad[...]
Cuando se almacenan imágenes en una aplicación java y se desea después a modo de registro buscar estas y cargarlas en al[...]
PlaceHolder: PlaceHolder es un atributo propio de HTML5 y es el texto que aparece dentro de un campo de texto (un JTextF[...]