2011-06-13 5 views
5

1MB 이미지 파일을 다운로드하고 이미지 뷰를 채우려면 비트 맵에 저장하려고합니다. 하지만 오류가 나는 큰 이미지를 다운로드 할 수 있습니다 방법android 1MB 이미지 파일을 다운로드하고 ImageView로 설정하는 방법

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

보여줍니다?

+0

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

답변

3

나는 같은 문제를 겪어왔다. 다운로드 한 비트 맵을 ImageView으로 설정하기 전에 ImageView의 너비와 높이에 따라 비트 맵을 압축해야합니다. 당신은 이런 스케일 비트 맵을 만들 필요가

,이 같은

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

또는 압축 비트 맵,

  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, true); imgView.setImageBitmap (bm1); 가끔은 작동하고 때로는 작동하지 않습니다. 왜 그런지 말해 줄 수 있니? – Jyosna

+0

내가 제시 한 다음 방법을 시도하지 않으면. 이렇게하면 이미지가 압축되어 저장됩니다. 그 후 uri를 사용하여 imageview에 대한 이미지를 설정하려고합니다. –

관련 문제