Autore Topic: Problema con progressbar  (Letto 792 volte)

Offline ionio89

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Problema con progressbar
« il: 27 Febbraio 2011, 12:39:52 CET »
0
Salve a tutti, avrei un piccolo problema da sottoporvi e mi chiedevo se mi poteste aiutare...
In pratica vorrei inserire nella mia app android una progressbar, in quanto l'operazione che deve compiere richiede diversi minuti...
Per questo motivo ho implementato la classe Progress.java così strutturata:

Codice (Java): [Seleziona]
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ProgressBar;

public class Progress extends Activity {

 ProgressBar myProgressBar;
 public static int myProgress = 0;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.progress);

        myProgressBar=(ProgressBar)findViewById(R.id.progressbar_Horizontal);

        new Thread(myThread).start();
    }

    private Runnable myThread = new Runnable(){

  public void run() {
   // TODO Auto-generated method stub
   while (myProgress<100){
    try{
     myHandle.sendMessage(myHandle.obtainMessage());
     
    }
    catch(Throwable t){
    }
   }
  }

  Handler myHandle = new Handler(){

   @Override
   public void handleMessage(Message msg) {
    // TODO Auto-generated method stub
           
    myProgressBar.setProgress(myProgress);
   }
  };
    };
}

Inoltre ho implementato il file xml in questo modo:

Codice (XML): [Seleziona]
<?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/loading"
                   android:id="@+id/textview" />
  <ProgressBar android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/progressbar_default" />
  <ProgressBar android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        style="?android:attr/progressBarStyleHorizontal"
                        android:id="@+id/progressbar_Horizontal" android:max="100" />
</LinearLayout>

Inoltre ho aggiornato il manifest opportunamente... Ora vorrei poter usare questa bar da un'altra classe in modo tale da svolgere le operazioni richieste ed aggiornare la textview della progress bar parallelamente (infatti ho due thread)...
Nell'altra classe dove vorrei inserire la bar ho:

Codice (Java): [Seleziona]
analyzeButton.setOnClickListener(new OnClickListener(){
                                public void onClick(View v) {
                                   
                                        try {
                                               
                                                final TextView visualizza = (TextView) findViewById(R.id.textview);
                                                visualizza.setText("Caricamento dell'immagine in corso...");
                                                bitmapImage = Utilita.readJpg("train.jpg");
                        //Binarizzazione
                                                visualizza.setText("Binarizzazione dell'immagine in corso...");
                        Bitmap outputImage = ElaborazioneImmagine.binarize(bitmapImage);
                        //outputImage vi è l'immagine binarizzata
                       
                        //Convoluzione
                        Bitmap outputImage2  = ElaborazioneImmagine.convolution(outputImage);
                       
                        .............
                               
                                        } catch (Exception e) {
                        // TODO Auto-generated catch block
                        buttonDelete.setText(e.toString());
                    }
                                       
                                }

View analyzeButton2 = findViewById(R.id.analyze_photo_button);
                                        analyzeButton2.setOnClickListener(this);

Praticamente vorrei che quando si clicchi su analyzebutton si visualizzi progress.xml e che si aggiorni man mano che si svolgono le varie elaborazioni sull'immagine...
Mi potete aiutare??? Grazie in anticipo.