Reputation: 739
I am trying to implement the code below converting a image path into a bitmap to display on my activity. I am getting the below error. I have tried a bunch of different solutions but none are working
Strange out of memory issue while loading an image to a Bitmap object
Android: Resize a large bitmap file to scaled output file
OutOfMemoryError: bitmap size exceeds VM budget :- Android
Error: E/dalvikvm-heap(19252): 12742656-byte external allocation too large for this process.
for(int i = 0; i < numItems; i++) {
File imgFile = new File(photoPaths.get(i));
if(imgFile.exists())
{
images[i] = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
}
Upvotes: 1
Views: 2681
Reputation: 6591
You may consider loading them in a more just-in-time kind of approach, or using the inSampleSize
option of the bitmap factory (i.e., you'd pass a BitmapFactory.Options
in to the factory with inSampleSize
set to, ideally, a power of 2). Also make sure you set inPurgeable
true.
In the event that you are pulling these images from the MediaStore
's ContentProvider
, you can also use thumbnails.
Perhaps you can tell us more about your use case so we can better help.
Upvotes: 1
Reputation: 36302
You're trying to load multiple large bitmaps, at least one of which is ~12MB. They're too large. The solutions you posted DO work. Resize your bitmaps to something much smaller, especially as you're just displaying the bitmaps on the screen.
Upvotes: 0