Autore Topic: immagini pesanti in drawable?  (Letto 764 volte)

Offline giuseppesorce

  • Utente junior
  • **
  • Post: 90
  • Respect: +6
    • Google+
    • warpmobile_it
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6,Nexus 5,Nexus 4, Galaxy Nexus, Nexus s, Nexus One,Htc Wildfire S, Nexus 7... etc
  • Sistema operativo:
    Ubuntu 14.04
immagini pesanti in drawable?
« il: 28 Marzo 2014, 06:05:58 CET »
0
Piccolo consiglio.. sto facendo una gallery di 100 foto in FullHD, pesantine.. tutto gira in locale, è un' installazione.. l' app può essere anche 100 mb ecco..
Sto usando una libreria che fa il Flip tipo Flipboard.. cmq questa libreria utilizza un adapter e getView.. tutto per farvi capire che vengono create delle pagine successive e precedenti.. prima della visualizzazione.

La domanda è... molto banalmente.. dove le metto: 1) drawable 2) asset folder 3) sdcard ... la domanda è per capire dove è meglio metterle per migliorare il consumo di memoria e migliorare la risposta della UI.
The code is joy and passion but it has a high degree of suffering

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:immagini pesanti in drawable?
« Risposta #1 il: 28 Marzo 2014, 10:04:32 CET »
0
Non sono espertissimo in termini di immagini fullHD in un device, ma a livello di consumo di memoria, nel senso di RAM non credo che ci sia differenza fra le varie soluzioni.
 
Ti consiglio di usare una delle librerie più quotate (Picasso, UIL o Volley) che di loro gestiscono già vari aspetti problematici (async, caching on disk/ram).
Quello che farei è evitare di mettere in cache le immagini full size. E' opportuno andare a prendere le reali dimensioni della imageView in cui andrai a mettere le immagini, in modo tale che l'immagine che vai a mettere in cache è quella ridimensionata.

 
Sto usando una libreria che fa il Flip tipo Flipboard.. cmq questa libreria utilizza un adapter e getView.. tutto per farvi capire che vengono create delle pagine successive e precedenti.. prima della UI.
Il fatto di andare a caricare le immagini precedenti e successive.... va un attimo testato. Dipende da quante immagini e a quale risoluzione, perchè il rischio di un OOM esiste.

La domanda è... molto banalmente.. dove le metto: 1) drawable 2) asset folder 3) sdcard ... la domanda è per capire dove è meglio metterle per migliorare il consumo di memoria e migliorare la risposta della UI.

Dipende anche da quello che farà l'applicazione.
Metterle dentro l'apk implica che l'apk è grande in fase di download, e che per aggiornare le immagini devi aggiornare l'app.
Usare l'sd card, implica che devi far eseguire almeno una volta un download consistente delle stesse immagini.

Tieni anche presente che usando la cartella drawable, le immagini vengono scalate da android (dipende anche da quello che vuoi ottenere).
Esiste la cartella drawable-nodpi per evitare questo.

Offline giuseppesorce

  • Utente junior
  • **
  • Post: 90
  • Respect: +6
    • Google+
    • warpmobile_it
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6,Nexus 5,Nexus 4, Galaxy Nexus, Nexus s, Nexus One,Htc Wildfire S, Nexus 7... etc
  • Sistema operativo:
    Ubuntu 14.04
Re:immagini pesanti in drawable?
« Risposta #2 il: 28 Marzo 2014, 10:24:13 CET »
0
Grazie Mario. Non ho detto che è un' installazione cioè tutto caricato su un mini pc Android e tutto offline.

OOM è proprio quello che voglio evitare.
The code is joy and passion but it has a high degree of suffering

Offline ciccioalex

  • Utente junior
  • **
  • Post: 58
  • Respect: 0
    • Mostra profilo
Re:immagini pesanti in drawable?
« Risposta #3 il: 29 Marzo 2014, 21:32:10 CET »
0
Se posso intromettermi:
come è possibile acquisire le dimensioni delle imageView in cui mettere le immagini?

Offline giuseppesorce

  • Utente junior
  • **
  • Post: 90
  • Respect: +6
    • Google+
    • warpmobile_it
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6,Nexus 5,Nexus 4, Galaxy Nexus, Nexus s, Nexus One,Htc Wildfire S, Nexus 7... etc
  • Sistema operativo:
    Ubuntu 14.04
Re:immagini pesanti in drawable?
« Risposta #4 il: 30 Marzo 2014, 06:33:53 CEST »
0
Scusate dovevo spiegare meglio.

Nessun download. L' app è dedicata ad un minipc android acceso 24h 7 su 7. L' app è una galleria per uno show room. Non c'è nessun download quindi non userei cache.

Ho fatto per adesso due versioni una con le immagini in drawable e l' altra che prende le immagini da sdcard.Vediamo come si comportano.
The code is joy and passion but it has a high degree of suffering

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:immagini pesanti in drawable?
« Risposta #5 il: 30 Marzo 2014, 09:55:21 CEST »
0
Una immagine fullHD è 1920x1080. A 4 byte per pixel sono 8,3Mb. Per 3 immagini (corrente+precedente+successiva) sei sui 25mb.

L'heap space è dipendente dal device, ma puoi suggerire nel manifest di averne uno grande aggiungendo:

android:largeHeap="true"

Visto che è una installazione se ti funziona sei a posto.  ;-)

Offline giuseppesorce

  • Utente junior
  • **
  • Post: 90
  • Respect: +6
    • Google+
    • warpmobile_it
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6,Nexus 5,Nexus 4, Galaxy Nexus, Nexus s, Nexus One,Htc Wildfire S, Nexus 7... etc
  • Sistema operativo:
    Ubuntu 14.04
Re:immagini pesanti in drawable?
« Risposta #6 il: 30 Marzo 2014, 09:57:59 CEST »
0
android:largeHeap="true" lo avevo già messo.. per una volta che si può :), è l' unica app che gira sul device...

in realtà ho ritoccato e ridotto le immagini.. max le ho fatto 750kb.

Si per adesso regge.. devo fare altri test e capire come ottimizzare meglio..
The code is joy and passion but it has a high degree of suffering

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:immagini pesanti in drawable?
« Risposta #7 il: 30 Marzo 2014, 11:31:13 CEST »
0
A meno che tu non usi OpenGL da quanto ne so non importa se l'immagine jpg o png è 10kb o 1mb.
Occupano sempre 8mb l'una..  :-(