💻 개발/Android

[Android] 카메라 또는 갤러리에서 이미지 가져오기

고도고도 2022. 2. 6. 06:34

구현 기능

카메라갤러리 에서 이미지를 불러와 ImageView 에 넣어주는 기능

구현 코드

구현 결과

오류 내용

카메라 에서 이미지 를 촬영하고 이를 전달받으면 정상적으로 ImageView 에 삽입되는데 갤러리 에서 이미지 를 선택하고 이를 전달받으면 어플리케이션이 종료되는 오류가 발생했다.

우선 오류 내용은 null , 읽어보니 null 을 비트맵 이미지로 변환할 수 없다는 오류였다. 이유는 간단했다. 카메라 에서 촬영한 이미지를 가져올 때 onActivityResult 함수에서 data 를 통해 촬영한 이미지를 가져오는데 이 때 data?.extras?.get("data") 를 통해서 이미지 데이터를 가져온다. 위 코드가 카메라에서 촬영한 이미지이면 정상적으로 동작하지만 갤러리에서 이미지를 가져오는 경우엔 이미지 데이터를 가져오지 못한다.

data?.extras?.get("data") 를 출력해본 결과, 갤러리 에서 이미지를 가져오는 경우엔 null 이 출력되는 것을 볼 수 있다.

해결 방법

data?.extras?.get("data") 가 아닌 data?.data 를 사용한다.