2012-01-28 16 views

risposta

1

Si prega di visitare il link this.

Inoltre è spiegato in pieno in ApiDemos all'interno dell'SDK. L'esempio che si desidera è denominato: ProgressBar3.java e può essere trovato in \ ApiDemos \ src \ com \ example \ android \ apis \ view \

Inoltre, se si desidera rimuovere i bordi della finestra di dialogo in modo che solo appare la barra di avanzamento è possibile definire la finestra di dialogo stessa come una vista trasparente/overlay (è spiegato anche negli esempi).

17

Secondo documentation, si dovrebbe chiamare setProgressNumberFormat (null) sul ProgressDialog istanza per ottenere questo comportamento

+2

il metodo che hai citato è applicabile per il livello di API 11. il mio è 10 – Dhanesh

+1

My bad :(ho scavare nel codice sorgente e scoprire che non c'è un modo "normale" per farlo in api 10. Posso solo proporre come soluzione alternativa per ottenere il codice ProgessDialog completo da Android 4.0.1 e utilizzarlo invece della versione integrata. Forse, sarà un po 'di confusione con risorse "interne" di Android, ma è anche disponibile come fonti da riutilizzare – OleGG

11

Hey Qui download di un file da un server, il salvataggio di un file alla sdcard e mostrando una barra di avanzamento.

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); 
    } 
} 
} 

come questo si ottiene ..

questo è esempio immagine che ho trovato in rete. enter image description here

e questo è il mio file 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

Questa non è una risposta alla domanda – SoroushA

Problemi correlati