Hello Developer, Hope you guys are doing great. Today at Tutorial Guruji Official website, we are sharing the answer of Lack of memory with multiple images [closed] without wasting too much if your time.
The question is published on by Tutorial Guruji team.
The question is published on by Tutorial Guruji team.
In my application I have to manage lot of images taken by the Android Camera.
The problem is that when I have a lot of pictures the phone has a lack of memory and works very slowly. I want to still be able to manage the same number of images but without the memory issues
Any advice on what I should do to achieve this?
Answer
You should decode a scaled images.
You can reduce the amount of dynamic heap used by expanding the JPEG into a memory array that’s already scaled to match the size of the destination view.
The following example method demonstrates this technique:
private void setPic() { // Get the dimensions of the View int targetW = mImageView.getWidth(); int targetH = mImageView.getHeight(); // Get the dimensions of the bitmap BitmapFactory.Options bmOptions = new BitmapFactory.Options(); bmOptions.inJustDecodeBounds = true; BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions); int photoW = bmOptions.outWidth; int photoH = bmOptions.outHeight; // Determine how much to scale down the image int scaleFactor = Math.min(photoW/targetW, photoH/targetH); // Decode the image file into a Bitmap sized to fill the View bmOptions.inJustDecodeBounds = false; bmOptions.inSampleSize = scaleFactor; bmOptions.inPurgeable = true; Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions); mImageView.setImageBitmap(bitmap); }
Read more here.
We are here to answer your question about Lack of memory with multiple images [closed] - If you find the proper solution, please don't forgot to share this with your team members.