2014-09-25 13 views
5

Sto utilizzando Picasso per caricare JPG di circa 250-500 Kb (1600x ~ 1200) dall'URL in ImageView.Caricamento lento di immagini grandi con Picasso

Picasso.with(getApplicationContext()) 
.load(stringURL)       
.placeholder(R.drawable.holder).error(R.drawable.holder) 
.into(image) 

mio ImageView:

<ImageView 
android:id="@+id/image" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_alignParentTop="true" 
android:layout_centerInParent="true" 
android:layout_marginTop="0dip" 
android:adjustViewBounds="true" 
android:cropToPadding="false" 
android:scaleType="fitCenter" 

/>;

Il problema è che il primo caricamento dell'immagine è molto molto lento (circa 20 secondi), il consumo della CPU è elevato e quindi l'allocazione della memoria. LogCat mostra ad esempio "Grow heap (frag case) a 56.789 per allocazione 7601812-byte" per una singola immagine.

È qualcosa correlato alla memorizzazione nella cache delle immagini? C'è un modo per disabilitare la memorizzazione nella cache e scaricare direttamente l'immagine originale in ImageView?

Scaricando le stesse immagini da un iPhone in una doppia applicazione è istantanea ...

+0

Ecco un'immagine da 7 MB. 1600x1200x4 = 7,6 MB come i tuoi registri ti dicono. Ci vorrà del tempo per decodificarlo. Prova a usare 'fit()' o 'resize()' oppure usa la configurazione 'RGB_565' per l'ultima volta. – dnkoutso

risposta

0

sono passato al volo. Caricamento delle stesse immagini ora richiede una frazione del tempo.

3

Se si utilizza fit() o resize() che dovrebbe risolvere il problema. Attualmente carico centinaia di file jpg che sono molto grandi in un singolo GridLayout e non ho problemi.

Problemi correlati