Mostrar barra de progreso durante la descarga
Quiero mostrar una barra de progreso mostrando el porcentaje completado mientras mi aplicación está descargando algunos archivos grandes a través de Internet. algo como esto :
- ProgressBar en ActionBar, como la última actualización de la aplicación de GMail
- Descargar imágenes con AsyncTask
- Mostrar el progreso de la descarga dentro de la actividad con DownloadManager
- Cómo cambiar el color de la barra de progreso en Android? - (Traté de una manera, y no funciona)
- Cómo conseguir la barra de progreso indeterminada más suave usada en la aplicación Android de Gmail
- Cómo agregar dos colores en la barra de progreso en android?
- Progreso intermedio no funciona con ActionBarSherlock ejecutándose en Gingerbread
- Barra de progreso setvisible no funciona
- (ProgressBar) findViewById (R.id.ProgressBar) devuelve null
- Barra de progreso vertical en android
- android circle progressbar
- La barra de progreso horizontal no actualiza su estado
- Android cómo actualizar el valor de ProgressBar?
Código de archivo xml:
<ProgressBar android:id="@+id/xml_reg_progressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/common_left_right_margin" android:layout_marginRight="@dimen/common_left_right_margin" android:layout_marginTop="@dimen/reg_ph_linear_top_margin" />
Usted puede cambiar el estilo del progressbar según su requisito.
Este es el código de archivo java:
protected static final int TIMER_RUNTIME = 180000; // in ms --> 10s private ProgressBar progressTimer; public void startTimer() { final Thread timerThread = new Thread() { @Override public void run() { mbActive = true; try { int waited = 0; while (mbActive && (waited < TIMER_RUNTIME)) { sleep(1000); if (mbActive) { waited += 1000; updateProgress(waited); } } } catch (InterruptedException e) { // do nothing } finally { onContinue(); } } }; timerThread.start(); } Handler handler = new Handler(); private void onContinue() { handler.post(new Runnable() { @Override public void run() { txtCallContactUsNumber .setText(CommonVariable.CallForSupporMessage + contactInfo.MobileNo); } }); } public void updateProgress(final int timePassed) { if (null != progressTimer) { // Ignore rounding error here final int progress = progressTimer.getMax() * timePassed / TIMER_RUNTIME; handler.post(new Runnable() { @Override public void run() { Log.i("timePassed", "timePassed=" + timePassed); DateFormat formatter = new SimpleDateFormat("mm:ss"); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(timePassed); String timer = formatter.format(calendar.getTime()); formatter.setTimeZone(java.util.TimeZone.getTimeZone("GMT")); txtTimerCount.setText(formatter.format(timePassed)); } }); progressTimer.setProgress(progress); } }
En mi código esto llamará 1 segundo y obtendrá incremento de progreso cada 1 segundo.
Puede lograr esto utilizando una barra de progreso de dos maneras.
1.Añadir una barra de progreso (el círculo uno) para actuar como un indicador de carga.
Para hacer esto simple mostrar una barra de progreso en el inicio de la descarga de la imagen progressbar.show();
Una vez finalizada la descarga, desactiva la barra de progreso progressbar.dismiss();
Puede utilizar AsyncTask para esto
Referir este enlace
2.Añadir una barra de progreso (el tipo de barra rectangular) para mostrar el progreso de la descarga o lo que sea.
Yo te recomiendo que pases por este enlace ..
Consulte estos enlaces:
http://examples.javacodegeeks.com/android/core/ui/progressdialog/android-progressdialog-example/
Mostrar ProgressDialog Android
Claramente, explica cómo implementar ProgressBar
o ProgressDialog
Aquí hay una buena biblioteca para ProgressDialog personalizada:
Debe utilizar la barra de progreso. Supongo que para descargar el archivo que está utilizando Asynctask, si no lo eres, te recomiendo que lo hagas. La tarea asíncrona tiene dos métodos más fríos además del
DoInBackground ()
Son
PreExecute y postExecute
Puede anular este método, ahora crear una barra de progreso simple e iniciarlo en preExecute y terminarlo en el método postExecute. Aquí está el enlace de trabajo
- Android – <activity-alias> etiqueta de manifiesto
- ¿Puedo incluir de alguna manera y utilizar varias versiones de una biblioteca .jar determinada?