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.
Loading a higher resolution image than the UI supports doesn't provide any visual benefit to the user. In this example, we'll demonstrate how to take smaller samples of the image for display. We'll use 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. We turned to Unsplash.com to download a free image, (https://unsplash.com), although any large ...