I'm using Picasso to load JPGs of about 250-500 Kb (1600x~1200) from Url into ImageView.
Picasso.with(getApplicationContext())
.load(stringURL)
.placeholder(R.drawable.holder).error(R.drawable.holder)
.into(image)
My 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"
/>;
The problem is that the first load of the image is very very slow (about 20 seconds), the cpu consumption is high, and so memory allocation. LogCat shows for example "Grow heap (frag case) to 56.789 for 7601812-byte allocation" for a single image.
Is something related to image caching? There's a way to disable caching and directly download original image into the ImageView?
Downloading the same images from an IPhone into a twin-app is instantaneous...
If you use fit()
or resize()
that should fix your issue. I currently load hundreds of jpg files that are very large into a single GridLayout
and have no problems.
I switched to Volley. Loading the same images now take a fraction of the time.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With