Autore Topic: Progressbar  (Letto 701 volte)

Offline prezzemolo86

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: +1
    • Mostra profilo
Progressbar
« il: 28 Maggio 2013, 18:04:14 CEST »
0
Ciao a tutti!
Vi chiedo un aiuto sulle progress bar. In realtà mi servirebbe più che la barra il cerchio che gira.
Ho letto un po' di cose, ma mi sfugge come fare.

Vi spiego, io devo caricare una lista, ma il caricamento potrebbe richiedere del tempo, per cui sarebbe opportuno mostrare questa progress e scrivere "attendere caricamento..."

Analogamente quando ho la lista e devo caricare le immagini, una per ogni riga, vorrei riempire l'attesa con delle progress bar circolari con la solita scritta.

So che è possibile farlo, ma non capisco come.
Io ho fatto tutto con due AsyncTask.


Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Progressbar
« Risposta #1 il: 28 Maggio 2013, 19:58:56 CEST »
0
Guarda questo mio tutorial preistorico e molto grezzo, dovrebbe esserti utile come esempio.

[facile] HttpBookSearch: AsyncTask, HttpClient, XML parsing, ProgressDialog - Android Developers Italia
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline prezzemolo86

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: +1
    • Mostra profilo
Re:Progressbar
« Risposta #2 il: 28 Maggio 2013, 20:00:12 CEST »
0
ok grazie mille, se ho dubbi ti faccio sapere  ;-)

Offline prezzemolo86

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: +1
    • Mostra profilo
Re:Progressbar
« Risposta #3 il: 01 Giugno 2013, 00:48:57 CEST »
0
Ciao,

ho visto il tutorial e l'ho pure messo in pratica: ottimo!

Hai altro su progressbar, perché questo è un progress dialog, perché sono indecisa su quale delle due usare.

Un'altra cosa: è possibile precedere il caricamento di ogni immagine di una ListView con una Progress bar circolare?
Attualmente ho un AsyncTask che chiama e parserizza xml per ottenere i dati di ogni riga, poi un altro AsyncTask che mette le corrispondneti immagini in cache,posto il codice del secondo Task, quello dove vorrei le progress bar

Codice (Java): [Seleziona]
/*
         * AsyncTask<Params, Progress, Result>
         */

        private class DownloadBitmapTask
        extends AsyncTask<List<Categoria>, Void, HashMap<String, Bitmap>>
        {

                /*
                 * eseguito in un thread in background si occupa di eseguire il task
                 * vero e proprio. Accetta un parametro di tipo Params (il primo generic
                 * definito) e ritorna un oggetto di tipo Result
                 */

                @Override
                protected HashMap<String, Bitmap> doInBackground(List<Categoria>... elenco_categorie)
                {
                        try {
                                HashMap<String, Bitmap> cache = new HashMap<String, Bitmap>();
                                List<Categoria>categorie = elenco_categorie[0];
                               
                                BitmapManager bm = new BitmapManager( fm, dir);

                               
                                for (Categoria categoria:categorie)
                                {


                                        Bitmap bitmap;
                                        String file_name = categoria.getImageUrl();
                                        String urlImage =categoria.getCompleteImageUrl();
                                       
                                       
                                        bm.setName_file(file_name);
                                        bm.setUrlImage(urlImage);
                                       
                                        if(src.equals("db"))
                                        {
                                                //Log.d(LogTag, "carico bitmap da file");
                                                bitmap = bm.getBitmapFromFile();
                                        }
                                        else
                                        {
                                                //Log.d(LogTag, "carico bitmap da remoto");
                                                bitmap = bm.getBitmapFromURL(); //prendo Bitmap da url e la salvo
                                        }

                                        if(bitmap!=null)
                                        {
                                                cache.put(categoria.getId(), bitmap);
                                        }
                                        else
                                        {
                                                Log.d(LogTag, "la bitmap "+file_name+" non esiste :( ");
                                                cache.put(categoria.getId(), null);
                                        }


                                }

                                return cache;
                        } catch (Exception e) {
                                return null;
                        }
                }

                /*
                 * eseguito nel thread principale e si occupa di aggiornare
                 * l’interfaccia dopo l’esecuzione per mostrare i dati scaricati o
                 * calcolati nel task che vengono passati come parametro
                 */

                @Override
                protected void onPostExecute(HashMap<String, Bitmap> cache)
                {

                        if (cache != null)
                        {


                                Set<String> set = cache.keySet();
                                Iterator<String> iterator = set.iterator();


                                while (iterator.hasNext())
                                {
                                        String id_prodotto = iterator.next();
                                        Bitmap bitmap = cache.get(id_prodotto);
                                        adapter.getCacheImmagini().put(id_prodotto, bitmap);

                                }


                        }
                }

        }

Offline prezzemolo86

  • Nuovo arrivato
  • *
  • Post: 36
  • Respect: +1
    • Mostra profilo
Re:Progressbar
« Risposta #4 il: 04 Giugno 2013, 16:42:25 CEST »
0
Tutto risolto!
Questo esempio è stato utilissimo grazie mille!