CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 12 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 26 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 7 su 7
Discussione:

ImageView da visualizzare in una ListView popolata da un Cursor

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Senior Droid


    Registrato dal
    Dec 2009
    Messaggi
    307

    Ringraziamenti
    15
    Ringraziato 40 volte in 39 Posts
    Predefinito

    ImageView da visualizzare in una ListView popolata da un Cursor

    Dovrei realizzare una activity che contiene una ListView popolata tramite un cursore che fa una query al db. Questo l'ho fatto non è un problema.
    Però ora dovrei aggiungere delle immagini su ogni item della lista (per ogni riga 1 immagine, 2 righe di testo, e 1 bottone) e qui mi sorgono una marea di dubbi! Quindi prima di avviarmi verso qualunque strada volevo chiedere qualche parere a voi

    1) avendo circa 100 elementi nella lista, aggiungendo le immagini dentro delle ImageView nella view che uso per visualizzare gli item e settando quindi il riferimento alla resource (R.drawable...), queste verrebbero caricate tutte assieme in memoria, o la list view gestisce da sola un qualche meccanismo di buffering con cui ne conserva in memoria solo 1 tot alla volta?

    2) le immagini dovrebbero essere abbastanza grandi (dico "dovrebbero" visto che ancora le devo fare) circa 1/4 dello schermo, ma nella lista vorrei visualizzare una versione ridotta (una sorta di preview) mi conviene tenere 2 versioni dell'immagine dentro l'apk (normale e thumbnail)? mi pare che la gallery genera le thumbnail sulla SD, però non saprei se poi vado a rallentare troppo accedendo alla SD per leggerle?

    3) questo non è legato strettamente alla lista, comunque ha a che fare sempre con quelle immagini: in teoria dovrei supportare varie risoluzioni (QVGA, HVGA, WVGA) ma avendo parecchie immagini mi chiedevo se non diventa un problema triplicare le copie delle immagini nell'apk oppure dovrei includere solo una versione dell'immagine e generare le altre 2 ridimensionandole al volo? (oppure salvarle nella SD?)

    Per il momento mi vengono in testa questi di dubbi... sicuramente dopo mi verrà in mente qualche altra cosa

  2.  
  3. #2
    Senior Droid


    Registrato dal
    May 2010
    Località
    Rivoli
    Messaggi
    426

    Ringraziamenti
    6
    Ringraziato 48 volte in 47 Posts
    Predefinito

    Punto 1: l'esempio di Google "ApiDemos", nella cartella \ApiDemos\src\com\example\android\apis\view contiene il file List14.java
    Li' e' implementato un EfficientAdapter che carica una lista di... centomila? millemila? di piu'? ...elementi in un batter d'occhio.
    Vedi anche il file List13.java, che implementa uno SlowAdapter, giusto per capire il perche' del percome della cosa

    Punto 2:
    Quote Originariamente inviato da Orochi Visualizza il messaggio
    circa 1/4 dello schermo
    Quale schermo? Io sul mio Tattoo ho 240*320, mentre il mio collega qui a fianco ha 800*480. Comunque, non ti basta mettere le dimensioni al contenitore dell'immagine, es.
     
    1
    android:layout_width="320px"
    2
    android:layout_height="240px"
    3
    ... cosi' sei a posto?

    Punto 3: se le immagini sono tante, e per ogni immagine devi farne 3 copie, perdi un sacco di tempo. Io penso che e' meglio fare l'immagine piu' grossa possibile (rispetto alla risoluzione che ti prefiggi), in modo da avere il maggiore dettaglio possibile, e poi ridimensionare quelle alle risoluzioni minori.

    Se sei nella meeee..... nella meeee.... nei guai, ci sono voci non confermate che TheCopacabanaMan abbia una funzione che ridimensiona le Bitmap

  4. Il seguente Utente ha ringraziato TheCopacabanaMan per il post:

    Orochi (21-10-10)

  5. #3
    Senior Droid


    Registrato dal
    Dec 2009
    Messaggi
    307

    Ringraziamenti
    15
    Ringraziato 40 volte in 39 Posts
    Predefinito

    Quote Originariamente inviato da TheCopacabanaMan Visualizza il messaggio
    Punto 1: l'esempio di Google "ApiDemos", nella cartella \ApiDemos\src\com\example\android\apis\view contiene il file List14.java
    Li' e' implementato un EfficientAdapter che carica una lista di... centomila? millemila? di piu'? ...elementi in un batter d'occhio.
    Vedi anche il file List13.java, che implementa uno SlowAdapter, giusto per capire il perche' del percome della cosa

    Punto 2:

    Quale schermo? Io sul mio Tattoo ho 240*320, mentre il mio collega qui a fianco ha 800*480. Comunque, non ti basta mettere le dimensioni al contenitore dell'immagine, es.
    3
     
    1
    android:layout_width="320px"
    2
    android:layout_height="240px"
    3
    ... cosi' sei a posto?

    Punto 3: se le immagini sono tante, e per ogni immagine devi farne 3 copie, perdi un sacco di tempo. Io penso che e' meglio fare l'immagine piu' grossa possibile (rispetto alla risoluzione che ti prefiggi), in modo da avere il maggiore dettaglio possibile, e poi ridimensionare quelle alle risoluzioni minori.

    Se sei nella meeee..... nella meeee.... nei guai, ci sono voci non confermate che TheCopacabanaMan abbia una funzione che ridimensiona le Bitmap
    Grazie, appena ho più tempo vado a vedere gli esempi che mi hai indicato.

    Per la tua risposta al punto 2, 1/4 era solo per dire che comunque sono di una certa dimensione, so benissimo che ci stanno dispositivi con risoluzioni diverse, ma impostando la dimensione direttamente sull'image per fare il resize, non è meno efficiente? cioè, il sistema non caricherà l'immagine a dimensione normale e poi la ridimensiona OGNI volta che la visualizza con la dimensione specificata?
    Es: ho una immagine 1000x1000 e la nella lista si visualizza a 80x80, impostando width e height non caricherà comunque in memoria l'immagine intera e poi la ridimensiona o no?

    Per il 3, ok, immaginavo fosse uno spreco di spazio enorme triplicare le immagini. Per ridimensionarle da codice in effetti so già come fare (l'ho già fatto in qualche altra vecchia mezza applicazione che stavo realizzando )

  6. #4
    Senior Droid


    Registrato dal
    May 2010
    Località
    Rivoli
    Messaggi
    426

    Ringraziamenti
    6
    Ringraziato 48 volte in 47 Posts
    Predefinito

    Quote Originariamente inviato da Orochi Visualizza il messaggio
    Es: ho una immagine 1000x1000 e la nella lista si visualizza a 80x80, impostando width e height non caricherà comunque in memoria l'immagine intera e poi la ridimensiona o no?
    Si, carica l'immagine intera (1000x1000), e poi la ridimensiona. Ma tutto questo avviene in codice macchina (che a quanto ho capito e' il C++), e quindi l'operazione e' abbastanza veloce.

    Inoltre, ti eviti tu lo sbattimento di creare i thumbnail, e questo e' un vantaggio da non sottovalutare

  7. #5
    Senior Droid


    Registrato dal
    Dec 2009
    Messaggi
    307

    Ringraziamenti
    15
    Ringraziato 40 volte in 39 Posts
    Predefinito

    Sono andato a vedere l'esempio che dicevi (List14), ma c'è solo roba che avevo già visto!! (Il meccanismo della convertView e del ViewHolder...)
    Per il resto carica solo 2 immagini (piccole) e le setta ogni volta che ricarica la view per 1 elemento...
    A questo punto mi sa che devo solo provare a caricarle tutte e vedere che succede............................

  8. #6
    Baby Droid


    Registrato dal
    Oct 2010
    Messaggi
    11

    Ringraziamenti
    2
    Ringraziato 0 volte in 0 Posts
    Cool

    Salve Ragazzi !!

    Ho letto questo post e accidenti dopo 3 giorni di sbattimenti vari finalmente trovo qualcosa che fa per me. Ho lo stesso identi problema di Orochi (Bella Orochi ). Sto facendo un app che deve parlare con un Db in remoto e permettere all'utente di poter effettuare ricerche di ogni tipo, ora, il web service nessul problema inviata un data richiesta risponde a dovere generando un XML che con Xml Parse leggo e poi carico anche io una fotxxta ListView con un immagine.
    Ho trovato un fantastico tutorial per il caricamente async delle immagine nella list .. ma è una cifra complicato da innestare mi sto perdendo !!!

    Te Hai risolto ? se si come ....

    Grazie

  9. #7
    Senior Droid


    Registrato dal
    Dec 2009
    Messaggi
    307

    Ringraziamenti
    15
    Ringraziato 40 volte in 39 Posts
    Predefinito

    Quote Originariamente inviato da iodroid Visualizza il messaggio
    Salve Ragazzi !!

    Ho letto questo post e accidenti dopo 3 giorni di sbattimenti vari finalmente trovo qualcosa che fa per me. Ho lo stesso identi problema di Orochi (Bella Orochi ). Sto facendo un app che deve parlare con un Db in remoto e permettere all'utente di poter effettuare ricerche di ogni tipo, ora, il web service nessul problema inviata un data richiesta risponde a dovere generando un XML che con Xml Parse leggo e poi carico anche io una fotxxta ListView con un immagine.
    Ho trovato un fantastico tutorial per il caricamente async delle immagine nella list .. ma è una cifra complicato da innestare mi sto perdendo !!!

    Te Hai risolto ? se si come ....

    Grazie
    La verità? Ho lasciato così come avevo detto l'altra volta (le tengo intere e nel layout imposto la dimensione dell'immagine da visualizzare facendo ridimensionare il tutto al sistema) visto che non ho ancora tutti i dati che mi servono per fare le prove come si deve e nel frattempo sto andando avanti con il resto del codice dell'applicazione, prima o poi ci ritornerò sopra...

    Purtroppo il tempo a disposizione è pochissimo (dannato lavoro... ) e le cose da fare o che vorrei fare sono molte di più!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy