2011-06-13 6 views
5

Estoy tratando de descargar un archivo de imagen de 1mb y luego guardarlo en un mapa de bits para llenar una imagen. pero muestra el errorandroid cómo descargar un archivo de imagen de 1mb y configurarlo en ImageView

06-13 13:39:48.149: ERROR/AndroidRuntime(1782): 
java.lang.OutOfMemoryError: bitmap size exceeds VM budget 

¿Cómo puedo descargar una imagen grande?

+0

duplicado: http://stackoverflow.com/questions/1949066/java- lang-outofmemoryerror-bitmap-size-exceeds-vm-budget-android – razlebe

Respuesta

3

He pasado por el mismo problema. Antes de establecer el mapa de bits descargado en su ImageView, debe comprimir su mapa de bits de acuerdo con el ancho y alto de su ImageView.

Tienes que crear un mapa de bits reducido como este,

bm1=Bitmap.createScaledBitmap(bm, 300, 300,true); 
imgView.setImageBitmap(bm1); 

o comprimir el mapa de bits como este,

  OutputStream fOut = null; 
         File file = new File(strDirectoy,imgname); 
          fOut = new FileOutputStream(file); 

         bm1.compress(Bitmap.CompressFormat.JPEG, 85, fOut); 
          fOut.flush(); 
          fOut.close(); 

       MediaStore.Images.Media.insertImage(getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName()); 
+0

bm1 = Bitmap.createScaledBitmap (bm, 300, 300, verdadero); imgView.setImageBitmap (bm1); a veces funciona y a veces no funciona. ¿Puedes decirme por qué? – Jyosna

+0

Si no, pruebe el siguiente método que he dado. Esto comprimirá y almacenará tu imagen. Después de eso, intenta establecer la imagen para la vista de la imagen usando el uri. –

Cuestiones relacionadas