ActivityResultContracts.GetContent
을 이용해서 내부 저장소에서 이미지를 가져올게요.
이전 글에서 설명한 카메라에서 가져오는 방식과는 다르게 미리 파일을 생성하지 않아도 돼서 더 간단해요.
Manifest
에 READ_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. 실행화면
참고자료
'Android' 카테고리의 다른 글
[Android] Instagram Story 인스타그램 스토리 공유기능 (0) | 2024.03.27 |
---|---|
[Android] 카메라 앱으로 사진 촬영 (0) | 2024.03.22 |