Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/07/2011, 13:05
Avatar de zero_master
zero_master
 
Fecha de Ingreso: junio-2011
Ubicación: Leon, Gto
Mensajes: 290
Antigüedad: 13 años, 5 meses
Puntos: 74
Juguemos con las ProgressBar Yayy!!!

Saludos gente, despues de estar unos dias desaparecidos en lo profundo de la selva de mi tierra natal Chiapas, Mexico; vuelvo a la tecnologia si lo se la verdad si se extraña andar viendo porno digo viendo foros ... pues bueno.

Hoy hablaremos sobre las ProgressBar y si se preguntan... que madres es una progressbar. Pues las clasicas barritas que aparecen cuando estamos instalando, esperando que cargue alguna aplicacion.



En android nos facilitaron mucho las cosas la verdad , tenemos la que es por default "Round shape" que es una progress bar de forma circular.

Ok, entramos a nuestro Eclipse y creemos nuestro nuevo proyecto, abrimos el archivo main.xlm y en este archivo lo que vamos a poner es la indicación de nuestra progress bar utilizando la siguiente linea de código.

Cita:
<ProgressBar
android:id="@+id/progressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
Oye asi de facil?

Si corremos nuestro proyecto esto seria lo que nos saldrá



Si nos fijamos tendremos nuestro progressbar tipo "Round Shape" como si fuera un gif...

Tenemos otro tipo de progressbar que es la mas usada normalmente. La progressbar "Style Horizontal".

Para usar este tipo de ProgressBar de la misma manera en nuestro main.xlm debemos incluir estas lineas de código

Cita:
<ProgressBar
android:id="@+id/progressbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
android:max="100"
android:progress="50"
/>
Si nos fijamos un poco en nuestro código aquí le estamos indicando a nuestro proyecto que vamos a tener un valor máximo y también el progreso de donde se encuentra nuestra barra que sera a la mitad.

Nuestro proyecto tendrá una forma parecida a esta.



No se mueveee!!!! claro que no por que aun nos falta agregar unas cosas ya sabia!! (Hablo conmigo mismo )

Si recordamos agregamos una instrucción que es el android:progress aquí podemos ir modificando el estatus de nuestro progressbar para iniciar lo dejaremos en 0.

Primero carguemos nuestra librería para manejos de progressbar en nuestro archivo *.java

Cita:
import android.widget.ProgressBar;
Y librerías auxiliares para correr unas rutinas

Cita:
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Button;
Lo que vamos a hacer es agregar un botón y animar nuestro progressbar con el uso del systemclock.

Nuestro código final tendrá una forma parecida a esta.

Código Javascript:
Ver original
  1. public class AndroidProgressBar extends Activity {
  2.  
  3.  Button buttonStart;
  4.  ProgressBar progressBar;
  5.  
  6.     /** Called when the activity is first created. */
  7.     @Override
  8.     public void onCreate(Bundle savedInstanceState) {
  9.         super.onCreate(savedInstanceState);
  10.         setContentView(R.layout.main);
  11.         buttonStart = (Button)findViewById(R.id.start);
  12.         progressBar = (ProgressBar)findViewById(R.id.progressbar);
  13.          
  14.         buttonStart.setOnClickListener(new Button.OnClickListener(){
  15.  
  16.    @Override
  17.    public void onClick(View arg0) {
  18.     // TODO Auto-generated method stub
  19.     buttonStart.setClickable(false);
  20.     new asyncTaskUpdateProgress().execute();
  21.    }
  22.          
  23.         });
  24.          
  25.     }
  26.      
  27.     public class asyncTaskUpdateProgress extends AsyncTask<Void, Integer, Void> {
  28.  
  29.      int progress;
  30.      
  31.   @Override
  32.   protected void onPostExecute(Void result) {
  33.    // TODO Auto-generated method stub
  34.    buttonStart.setClickable(true);
  35.   }
  36.  
  37.   @Override
  38.   protected void onPreExecute() {
  39.    // TODO Auto-generated method stub
  40.    progress = 0;
  41.   }
  42.  
  43.   @Override
  44.   protected void onProgressUpdate(Integer... values) {
  45.    // TODO Auto-generated method stub
  46.    progressBar.setProgress(values[0]);
  47.   }
  48.  
  49.   @Override
  50.   protected Void doInBackground(Void... arg0) {
  51.    // TODO Auto-generated method stub
  52.    while(progress<100){
  53.     progress++;
  54.     publishProgress(progress);
  55.     SystemClock.sleep(100);
  56.    }
  57.    return null;
  58.   }
  59.      
  60.     }
  61. }

Si corremos nuestro proyecto tendremos nuestra barra animada no les muestro la imagen por que no se va a ver animada ademas de que me da flojera hacer gif's jajaja

Bueno espero les funcione cualquier duda o sugerencias ya saben escriban algo el que no escriba no merece copiar el código y presumir al rato que "hace aplicaciones android"