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 ...
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