로드하기 전에 이미지 크기가 사용 가능한 메모리보다 작은 지 확인하십시오. 따라서 OutOfMemoryException을 처리하는 가장 효율적인 방법은 예외를 피하기 위해 많은 양의 데이터를 메모리에로드하려고 시도하지 않는 방식으로 응용 프로그램을 구조화하는 것입니다.
메모리에 이미지를 넣기 전에 내 응용 프로그램이 사용하고있는 램의 크기를 알고
Bitmap original = BitmapFactory.decodeStream(getAssets().open("1024x768.jpg"));
ByteArrayOutputStream out = new ByteArrayOutputStream();
original.compress(Bitmap.CompressFormat.PNG, 100, out);
Bitmap decoded = BitmapFactory.decodeStream(new ByteArrayInputStream(out.toByteArray()));
Log.e("Original dimensions", original.getWidth()+" "+original.getHeight());
Log.e("Compressed dimensions", decoded.getWidth()+" "+decoded.getHeight());
여기를 방문하면 좋은 설명입니다 : http : //stackoverflow.com/questions/2630158/detect-application-heap-size-in-android/9428660#9428660 – Ironman
언제 'OutOfMemory Exception'이 발생합니까? ImageView에 이미지를로드하려고 할 때이 '예외'가 표시됩니까? – LearnPainLess
네,하지만 이상하게도 에뮬레이터에서 실행 중일 때는'OutOfMemory Exception'을 거의 얻지 못하며, 전화기에서 실행 중일 때는 항상 OutOfMemory Exception을 얻습니다. 귀하의 응용 프로그램에서 – Einsambr