2021년 3월 31일 수요일

[android, java] "trying to draw too large bitmap" 오류가 발생할때.

앱을 만드는 중 별것 한것도 없는데 오류가 난다.


"trying to draw too large bitmap" 라는 오류가 발생하는데 이미지가 너무 크다는 오류겠지만, 리소스를 찾아보니 별로 크지도 않은데 오류가 난다. (애초에 저런 크기의 이미지 자체가 없다)

이 오류의 해결 방법을 찾아 보니 몇가지가 나오다.

가장 간단한 방법은 "하드웨어 가속을 해제하는것".

하드웨어 가속과 이미지 큰게 무슨 상관인지는 모르겠으나, "AndroidManifest.xml" 파일내 <application> 항목에  android:hardwareAccelerated="false" 한줄만 추가해 주면 간단히 해결이 된다.

하지만, 하드웨어 가속을 써야만 하는 경우라면 다른 해결법이 필요하다.

이미지가 너무 크기 때문에 발생하는 오류 (엄밀히 말하면 높은 해상도 때문) 라서 높은 해상도 파일은 높은 해상도 파일로 구분해 주면 된다.

일단 리소스 폴더인 "drawable" 의 위치를 탐색기로 연다.


기본적으로 drawable 과 drawable-v24 폴더만 있을 것인데, 여기에 drawable-xxxhdpi 폴더를 생성해 준다.

그리고 높은 해상도를 가진 파일 (일판적으로 크기가 큰 파일) 들을 여기로 이동해 준다.


그러면 안드로이드 스튜디오의 "drawable"  폴더에 각 파일들이 각각 구분되어 나오는데 "xxxhdpi" 로 구분되는 파일들은 높은 해상도를 가지고 있어서 표시가 된다.

원래는 각 해상도 별로 각각 그 폴더에 그 해상도의 이미지를 넣어줘야 정상이 겠으나...

어쨌든 대부분은 이렇게 해결이 된다.