본문 바로가기
Android

[Android] 갤러리에서 사진 가져오기

by LoseyKim 2024. 3. 23.

ActivityResultContracts.GetContent을 이용해서 내부 저장소에서 이미지를 가져올게요.

이전 글에서 설명한 카메라에서 가져오는 방식과는 다르게 미리 파일을 생성하지 않아도 돼서 더 간단해요.

ManifestREAD_MEDIA_IMAGES권한을 먼저 받아와야하는데, 권한을 받는 과정은 다음에 설명해볼게요.


1. registerForActivityResult() 구현

이미지를 선택하면 content://로 시작하는 uri를 반환해요.

private val  pickImageLauncher = registerForActivityResult(ActivityResultContracts.GetContent()) { uri ->
    uri?.let { imageUri ->
        //이미지를 받아왔을 때
        //uri를 이용하여 작업을 처리
    } ?: kotlin.run {
        //이미지를 받아오지 못했을 때
    }
}

2. registerForActivityResult() 호출

이미지를 받아오도록 image/*를 넘겨요.

pickImageLauncher.launch("image/*")

3. 실행화면

사진가져오기 실행화면


참고자료

https://developer.android.com/reference/androidx/activity/result/contract/ActivityResultContracts.GetContent

 

ActivityResultContracts.GetContent | Android Developers

androidx.appsearch.builtintypes.properties

developer.android.com