You must use the fit () method in Picasso, which measures the size of the target ImageView and internally uses resize () to reduce the size of the image to ImageView.
The advantage is that the image has the smallest possible resolution without affecting its quality. Lower resolution means less data to cache.
Picasso.with(context).load(rowItem.getProductImages().get(0)).fit().into(holder.productImageView);
If you still have OOM, delete the cache using a memory policy.
Picasso.with(context).load(rowItem.getProductImages().get(0)).memoryPolicy(MemoryPolicy.NO_CACHE).fit().into(holder.productImageView);
source share