title: How to avoid "out of memory exception" when doing Bitmap processing?
body: <p>In <code>onPictureTaken</code>, I want to do the following:</p>
  
  <pre><code>Bitmap decodedPicture = BitmapFactory.decodeByteArray(data, 0, data.length);
  Matrix matrix = new Matrix();
  matrix.preScale(-1.0f, 1.0f);
  Bitmap picture = Bitmap.createBitmap(decodedPicture, 0, 0, decodedPicture.getWidth(), decodedPicture.getHeight(), matrix, false);
  
  View v1 = mainLayout.getRootView();
  v1.setDrawingCacheEnabled(true);
  Bitmap screenshot = Bitmap.createBitmap(v1.getDrawingCache());
  v1.setDrawingCacheEnabled(false);
  
  Bitmap scaledPicture = Bitmap.createScaledBitmap(picture, screenshot.getWidth(), screenshot.getHeight(), true);
  
  Bitmap compos = Bitmap.createBitmap(scaledPicture.getWidth(), scaledPicture.getHeight(), Bitmap.Config.ARGB_8888);
  
  Canvas canvas = new Canvas(compos);
  canvas.drawBitmap(scaledPicture, new Matrix(), null);
  canvas.drawBitmap(screenshot, new Matrix(), null);
  
  MediaStore.Images.Media.insertImage(getContentResolver(), compos, "name" , "description");
  sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
  </code></pre>
  
  <p>My only requirement is that I'd like to save a high-quality photo... Seems I might have to sacrifice that.</p>
  
  <p>On my Nexus 4 and newer devices, this code runs fine and as expected. But on older devices that have less memory, I'm running out of RAM! :(</p>
  
  <p>How do I do the same image manipulation without running up against the memory limit?? I'm not trying to <em>display</em> these images on screen, so the solutions that have to do with a scaled down image don't really apply here...</p>