title: Out of memory while creating bitmaps on device
body: <p>im having problems with high resolution images.</p>
  
  <p>Im using nodpi-drawable folder for 1280x720 images, and using this code to scale it.</p>
  
  <pre><code>public static Drawable scaleDrawable(Drawable d, int width, Activity cxt)
      {
          BitmapDrawable bd = (BitmapDrawable)d;
  
          double oldWidth = bd.getBitmap().getWidth();
          double scaleFactor = width / oldWidth;
  
          int newHeight = (int) (d.getIntrinsicHeight() * scaleFactor);
          int newWidth = (int) (oldWidth * scaleFactor);
  
          Drawable drawable = new BitmapDrawable(cxt.getResources(),MainScreen.getResizedBitmap(bd.getBitmap(),newHeight,newWidth));
  
          BitmapDrawable bd2 = (BitmapDrawable)drawable;
  
          return  drawable;
      }
  
      public static Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) { 
  
          int width = bm.getWidth(); 
          int height = bm.getHeight(); 
  
          float scaleWidth = ((float) newWidth) / width;
          float scaleHeight = ((float) newHeight) / height;
  
          // create a matrix for the manipulation
          Matrix matrix = new Matrix();
  
          // resize the bit map
          matrix.postScale(scaleWidth, scaleHeight);
  
          // recreate the new Bitmap
          Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
  
          return resizedBitmap; 
          }
  </code></pre>
  
  <p>I use that code to scale images to screen witdh so if the screen is 320x480 the image will scale to 320 and keep proportions, i dont care if image go out of screen from bottom.</p>
  
  <p>All its working fine, but when trying in a xhdpi device specifically a Samsung Galaxy Note 2 with a screen of exactly 720x1280.</p>
  
  <p>It crash with Out Of Memory Exception in the line:</p>
  
  <pre><code>Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
  </code></pre>
  
  <p>I cant understand why, the image should be scaled from 720 to 720 but my code must be really bad optimized or something.</p>
  
  <p>I havent tried on a 1080x1920 device but it seems it will crash too.</p>
  
  <p>Someone can see something bad when looking at the code?</p>