Scaling down large images to avoid Out of Memory exceptions
Working with images can be very memory intensive, often resulting in your application crashing with an Out of Memory exception. This is especially true with pictures taken with the device camera, as they often have a much higher resolution than the device itself.
Since loading a higher resolution image than the UI supports doesn't provide any visual benefit in this example, this recipe will demonstrate how to take smaller samples of the image for display. We'll use the BitmapFactory
to first check the image size then load a scaled-down image.
Here's a screenshot from this recipe showing a thumbnail of a very large image:
Getting ready
Create a new project in Android Studio and call it: LoadLargeImage
. Use the default Phone & Tablet options and select Empty Activity when prompted for the Activity Type.
We'll need a large image for this recipe; so we turned to www.Pixabay.com for an image. Since the image itself doesn't matter, we...