본문 바로가기

ImageView2

[안드로이드] Canvas: trying to draw too large bitmap. 런타임 에러 해결 방법 ImageView와 관련하여 아래와 같은 런타임 오류가 발생할 때가 있다. java.lang.RuntimeException: Canvas: trying to draw too large(110250000bytes) bitmap. 로그에서 설명해주듯이 발생 원인은 이미지가 너무 커서 앱이 구동된 환경의 캔버스에서 못 그리겠다는 것이다. 해결 방법은 4가지다. 1. 이미지 사이즈를 줄여서 교체한다. - 본인은 가급적 이 방법을 사용한다. - 특별한 상황이 아니라면 앱 용량도 줄어들고 효율적이기 때문에 이미지 크기를 줄이는 방법을 추천한다. 2. 고해상도 전용 drawable-xxhdpi 혹은 drawable-xxxhdpi 폴더로 이미지를 옮긴다. - 기본 drawable 폴더는 mdpi 해상도의 이미지를 보관.. 2021. 7. 31.
[안드로이드] ImageView가 높이 전체를 차지할 때 비율 조정 방법: adjustViewBounds 안드로이드를 개발하다보면 이런 상황을 맞을 수 있다. ImageView를 배치하고, width, margin 등을 설정해서 이미지 크기를 조절 하는데 세로 높이가 자꾸 전체 화면을 차지하며 비율이 맞지 않는 상황이다. 가로(너비) 크기를 줄일 때 세로(높이)도 비율에 맞게 줄어들길 원한다면 adjustViewBounds 속성을 true로 설정하면된다. android:adjustViewBounds="true" 디자인 모드에서도 설정할 수 있다. adjustViewBounds 를 true로 설정하면 ImageView의 높이가 정상적인 비율로 축소된 것을 확인할 수 있다. 레이아웃 XML 전문은 아래와 같다. # android:adjustViewBounds 속성이란? - 이미지의 비율을 유지하면서 크기를 조정.. 2021. 7. 31.