2012-01-28 11 views

Respuesta

1

Por favor, visite this enlace.

También se explica en su totalidad en ApiDemos dentro del SDK. El ejemplo que desea se llama: ProgressBar3.java y se puede encontrar en \ ApiDemos \ src \ com \ example \ android \ apis \ view \

Además, si desea eliminar los bordes del diálogo para que solo la barra de progreso aparece, usted puede definir el cuadro de diálogo como una vista/superposición transparente (también se explica en los ejemplos).

17

Según documentation, debe llamar setProgressNumberFormat (null) en su ProgressDialog ejemplo, para obtener este comportamiento

+2

el método que se ha mencionado es aplicable a nivel de la API 11. mío es 10 – Dhanesh

+1

Mi mal :(He excavación en la fuente de código y averiguar que no hay una forma "normal" de hacerlo en api 10. Solo puedo proponer una solución alternativa para obtener el código completo de ProgessDialog de Android 4.0.1 y usarlo en lugar de la versión incorporada. Tal vez sea un poco complicado recursos "internos" de Android, pero también está disponible como fuentes para reutilizar. – OleGG

11

Hey Aquí Descarga de un archivo de un servidor, guardar un archivo en la tarjeta sd y mostrando una barra de progreso.

public class XYZ extends Activity { 

    public static final int DIALOG_DOWNLOAD_PROGRESS = 0; 
    private Button startBtn; 
    private ProgressDialog mProgressDialog; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     startBtn = (Button)findViewById(R.id.startBtn); 
     startBtn.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       startDownload(); 
      } 
     }); 
    } 

    private void startDownload() { 
     String url = "http://.jpg"; 
     new DownloadFileAsync().execute(url); 
    } 
    @Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
     case DIALOG_DOWNLOAD_PROGRESS: 
      mProgressDialog = new ProgressDialog(this); 
      mProgressDialog.setMessage("Downloading file.."); 
      mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
      mProgressDialog.setCancelable(false); 
      mProgressDialog.show(); 
      return mProgressDialog; 
     default: 
      return null; 
     } 
    } 

class DownloadFileAsync extends AsyncTask<String, String, String> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     showDialog(DIALOG_DOWNLOAD_PROGRESS); 
    } 

    @Override 
    protected String doInBackground(String... aurl) { 
     int count; 

    try { 

    URL url = new URL(aurl[0]); 
    URLConnection conexion = url.openConnection(); 
    conexion.connect(); 

    int lenghtOfFile = conexion.getContentLength(); 
    Log.d("ANDRO_ASYNC", "Lenght of file: " + lenghtOfFile); 

    InputStream input = new BufferedInputStream(url.openStream()); 
    OutputStream output = new FileOutputStream("/sdcard/some_photo_from_gdansk_poland.jpg"); 

    byte data[] = new byte[1024]; 

    long total = 0; 

     while ((count = input.read(data)) != -1) { 
      total += count; 
      publishProgress(""+(int)((total*100)/lenghtOfFile)); 
      output.write(data, 0, count); 
     } 

     output.flush(); 
     output.close(); 
     input.close(); 
    } catch (Exception e) {} 
    return null; 

    } 
    protected void onProgressUpdate(String... progress) { 
     Log.d("ANDRO_ASYNC",progress[0]); 
     mProgressDialog.setProgress(Integer.parseInt(progress[0])); 
    } 

    @Override 
    protected void onPostExecute(String unused) { 
     dismissDialog(DIALOG_DOWNLOAD_PROGRESS); 
    } 
} 
} 

como esto se obtiene ..

esto es imagen de ejemplo que he encontrado en la red. enter image description here

y este es mi archivo xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" /> 
    <Button 
     android:text="Start long running task.." 
     android:id="@+id/startBtn" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 
    </Button> 
</LinearLayout> 
+5

Esta no es una respuesta a la pregunta – SoroushA

Cuestiones relacionadas