Autore Topic: Lazy load immagini e riuso convertView  (Letto 880 volte)

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Lazy load immagini e riuso convertView
« il: 28 Giugno 2013, 10:00:58 CEST »
0
Oggi vi posto una domanda un pò strana.
Sono completamente a digiuno di fragment

Nella mia app devo creare una list view, popolata da un file json, passandogli delle immagini di sfondo prese da internet.
Il problema è che android riusa gli elementi della list view, quindi l'utente per qualche secondo vede l'immagine precedente (anche più di qualche secondo)
Quindi mi stavo studiando la documentazione sull'ottimizzazione del download delle immagini, provo a scaricare il file d'esempio, e funziona perfettamente, proprio quello che mi serve... solo che non riesco a capire come funziona... ci sono troppi file, e non ho capito nulla, solo la classe dove prende tutti i link

C'è un anima pia che mi da una mano ad estrapolare solo la parte che mi serve?

lin che stavo studiando
Caching Bitmaps | Android Developers
(il download è in alto a destra)

So che è una domanda strana, ma spero che qualcuno abbia la pazienza e il tempo di aiutarmi
« Ultima modifica: 28 Giugno 2013, 12:14:29 CEST da Ricky` »

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Lazy load immagini e riuso convertView
« Risposta #1 il: 28 Giugno 2013, 13:25:07 CEST »
0
Invece che "sbatterci la testa" ed evitando di reinventare la ruota, ti suggerisco una libreria:

https://github.com/nostra13/Android-Universal-Image-Loader

Se invece vuoi capire come funziona il sistema, forse quella appena linkata è troppo complessa (ha un sacco di opzioni).

Quindi ti suggerisco questa (per capire il funzionamento):

https://github.com/loopj/android-smart-image-view
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Lazy load immagini e riuso convertView
« Risposta #2 il: 28 Giugno 2013, 16:23:22 CEST »
0
Grazie mille. No un occhiata a tutto nel fine settimana

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Lazy load immagini e riuso convertView
« Risposta #3 il: 04 Luglio 2013, 16:54:57 CEST »
0
rs vorrei farti 2 domande.
La seconda galleria è davvero molto semplice (ottimo)
ma mi inserisce l'immagine direttamente nella grafica, e se io volessi scaricarla in una bitmap, così da poterci lavorare prima?
inoltre per caso conosci un implementazione completa che sfrutta questa libreria per inserire le immagini in una lista cliccabile popolata tramite json? perchè tutte le versione che ho implementato io, non sono per nulla performanti

edit:
ho modificato il list adapter sfruttando questa libreria, e va una meraviglia
resta il problema per salvare l'img in una bitmap per poterci lavorare sopra
« Ultima modifica: 04 Luglio 2013, 17:01:49 CEST da gabric »

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Lazy load immagini e riuso convertView
« Risposta #4 il: 06 Luglio 2013, 15:49:51 CEST »
0
Puoi modificare il codice della libreria, in modo da mandare l'immagine alla imageview solo dopo averla modificata
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Lazy load immagini e riuso convertView
« Risposta #5 il: 06 Luglio 2013, 15:54:48 CEST »
0
c'ho provato, ma con pessimi risultati.
semplicemente mi servirebbe di aggiunger alla libreria un metodo che piuttosto che inserire l'immagine direttamente nell'img view, me la restituisse come bitmap

Offline elfo83

  • Utente normale
  • ***
  • Post: 283
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:Lazy load immagini e riuso convertView
« Risposta #6 il: 06 Luglio 2013, 17:11:10 CEST »
0
Stai usando la libreria SimpleImage? Come ti trovi? Hai mai ottenuto out of memory? Dopo gli do un'occhiata e cerco di risolvere il tuo problema..

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Lazy load immagini e riuso convertView
« Risposta #7 il: 06 Luglio 2013, 17:37:12 CEST »
0
io ho messo tutto in un try catch proprio per evitare l'out of memory, però carica sempre le immagini, quindi niente out (se ci fosse l'errore, l'imageView resterebbe con l'img di default)
Fin or ho provato facendogli popolare una lista di 100 elementi

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:Lazy load immagini e riuso convertView
« Risposta #8 il: 06 Luglio 2013, 17:58:23 CEST »
0
L'impiego della convertView serve proprio ad evitare outofmemory
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.

Offline elfo83

  • Utente normale
  • ***
  • Post: 283
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:Lazy load immagini e riuso convertView
« Risposta #9 il: 06 Luglio 2013, 18:37:29 CEST »
0
Attualmente ho sviluppato un'applicazione abbastanza complessa che ha svariate attività in cui si caricano molte immagini tra listview, scrollview e chi + ne ha più ne metta. Sto utilizzando tutti i pattern consigliati per evitare l'uotofmemory: per il popolamento delle liste utilizzo il pattern del wrapperView, nei metodi onDestroy rilascio tutte le risorse etc etc. Ma quando vado da un'attività all'altra, scorro liste e poi cambio ancora attività, spesso vado outofmemory. Io penso che sia l'image loader che sto utilizzando ma non riesco a capire il perchè. Per questo che ti chiedevo se utilizzando simpleImageLoader ti va fuori memoria. In realtà bisognerebbe testarlo bene. Nel caso in cui funzionasse sarebbe un po' una scocciatura andare a sostituire in tutti i file xml dei layout, al posto di imageView, SimpleImageview. Tuttavia lo farei volentieri nel caso in cui funzionasse bene :)

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Lazy load immagini e riuso convertView
« Risposta #10 il: 06 Luglio 2013, 18:57:39 CEST »
0
però considera che il simpleImageView eredita da imageview, quindi ti basta sostituire la stringa nei file xml (ctrl+f e poi sostituisci tutto )
naturalmente devi far dei controlli più accurati

Offline elfo83

  • Utente normale
  • ***
  • Post: 283
  • Respect: +23
    • Mostra profilo
  • Sistema operativo:
    Mac OS 10.8.2
Re:Lazy load immagini e riuso convertView
« Risposta #11 il: 06 Luglio 2013, 19:31:50 CEST »
0
Bo ci proverò a vedere se vado fuori memoria lo stesso. Grazie

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Lazy load immagini e riuso convertView
« Risposta #12 il: 12 Luglio 2013, 16:51:01 CEST »
0
Ciao, alla fine sei riuscito a modificare la classe, così da far restituire la bitmap?