Autore Topic: Imageview in List  (Letto 681 volte)

Offline max246

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    G1
  • Play Store ID:
    Christian
Imageview in List
« il: 09 Settembre 2010, 10:28:11 CEST »
0
Ho creato una listview e ho dentro un campo image, questo voglio applicargli un'immagine da url:

Codice: [Seleziona]
ArrayList<HashMap<String, Object>> mylist=new ArrayList<HashMap<String,Object>>();
            HashMap<String, Object> map = new HashMap<String, Object>();
            ArrayList meteo = dati.getGiorni();
            for (int i = 0; i < meteo.size();i++) {
                String[] temp_dati =  (String[]) meteo.get(i);
             //   map.put("classe", s);
                  drawable =LoadImageFromWebOperations("http://www.google.com"+temp_dati[2]);
                map.put("image",drawable);
                map.put("giorno",temp_dati[0]);
                map.put("temp",temp_dati[1]);
                 map.put("condizione",temp_dati[3]);
                mylist.add(map);
                map = new HashMap<String, Object>();

            }
        SimpleAdapter mSchedule = new SimpleAdapter(this, mylist, R.layout.meteo_record, new String[]{"image", "temp", "condizione"}, new int[]{R.id.tipo, R.id.data, R.id.descrizione});

           ((ListView) findViewById(R.id.meteo_lista)).setAdapter(mSchedule);

La funzione:

Codice: [Seleziona]
private Drawable LoadImageFromWebOperations(String url)
           {
                System.out.println(url);
                try
                {
                    InputStream is = (InputStream) new URL(url).getContent();
                    Drawable d = Drawable.createFromStream(is, "src name");
                    return d;
                }catch (Exception e) {
                    System.out.println("Exc="+e);
                    Toast.makeText(getApplicationContext(), "Errore nel caricamento", Toast.LENGTH_LONG).show();

                    return null;
                }
            }


Il problema è che se applico a un imageview nella mia grafica funziona perfettamente ma quando faccio la stessa cosa per riempire i campi della listview mi ritorna questi erroir:
Codice: [Seleziona]
I/System.out(  762): http://www.google.com/ig/images/weather/chance_of_rain.gif
I/System.out(  762): http://www.google.com/ig/images/weather/chance_of_rain.gif
I/System.out(  762): http://www.google.com/ig/images/weather/sunny.gif
I/System.out(  762): http://www.google.com/ig/images/weather/mostly_sunny.gif
I/System.out(  762): resolveUri failed on bad bitmap uri: android.graphics.draw
ble.BitmapDrawable@43e469e0
I/System.out(  762): resolveUri failed on bad bitmap uri: android.graphics.draw
ble.BitmapDrawable@43e724f8
I/System.out(  762): resolveUri failed on bad bitmap uri: android.graphics.draw
ble.BitmapDrawable@43e91ec0
I/System.out(  762): resolveUri failed on bad bitmap uri: android.graphics.draw
ble.BitmapDrawable@43e8cb48
I/ActivityManager(   59): Displayed activity org.me.androidapplication6/.Meteo:
2673 ms (total 2673 ms)

Perchè???

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Imageview in List
« Risposta #1 il: 09 Settembre 2010, 12:29:40 CEST »
0
Innanzi tutto secondo me sbagli a non fare un lazy load della immagini. Se vuoi questa sera o domani ti posto un piccolo tutorial su come caricare le immagini in un thread separato. Comunque l'errore che ottieni viene sollevato dalla internamente ImageView, non sapendo bene il SimpleAdapter come va ad assegnargli il drawable non saprei darti una riposta più precisa.

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Imageview in List
« Risposta #2 il: 11 Settembre 2010, 13:20:44 CEST »
0
Novità?
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline max246

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    G1
  • Play Store ID:
    Christian
Re:Imageview in List
« Risposta #3 il: 11 Settembre 2010, 18:00:57 CEST »
0
Scusa ora son ovia in vacanza :) torno il 14 e vi saprò dire qualcosa di piu... Grazie cmq per le informazioni

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Imageview in List
« Risposta #4 il: 12 Settembre 2010, 19:58:13 CEST »
+1

Offline max246

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    G1
  • Play Store ID:
    Christian
Re:Imageview in List
« Risposta #5 il: 15 Settembre 2010, 11:29:16 CEST »
0
Ho solo una risposta " TI AMO " :D
Funziona perfettamente... a patto una piccolissima cosa..
Gli accenti nel mio listview non li visualizza, come faccio?

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Imageview in List
« Risposta #6 il: 15 Settembre 2010, 12:14:17 CEST »
0
Non visualizza le lettere accentate?? Da dove prelevi il testo? DB? File strings? Web?
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

vincenzodicicco

  • Visitatore
Re:Imageview in List
« Risposta #7 il: 15 Settembre 2010, 14:17:57 CEST »
0
Se prendi il testo dal web attento alla codifica che usi, prova ad utilizzare la codifica ISO-8859-1, ti faccio un esempio, nel caso tu usi un BufferedReader:
Codice (Java): [Seleziona]
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream(), "ISO-8859-1"));Io così ho risolto