반응형
- 기능 소개
1. ImageView Click Event 로 카메라, 갤러리, 내 파일 연결 프로그램 선택 모달창 보이기
2. 카메라, 갤러리, 내 파일을 통해 이미지 1개를 가져온다
3. 가져온 이미지를 ImageView 를 통해 사용자에게 보여준다
- 각 연결 프로그램 실행 결과
- 디자인 코드 생략
연결 프로그램 모달창이 뜨는 부분은 직접 개발(원하는 스타일로 개발할 것)
- 카메라 연결 프로그램 코드 구현
// 카메라 실행 객체 및 결과
private val cameraResult = registerForActivityResult(ActivityResultContracts.TakePicturePreview()) {
it?.let { binding.ivPost.setImageBitmap(it) }
}
// 카메라 실행
cameraResult.launch(null)
- 갤러리 연결 프로그램 코드 구현
// 갤러리 실행 객체 및 결과
private val galleryResult = registerForActivityResult(ActivityResultContracts.GetContent()) {
it?.let { uri ->
val stream = requireActivity().contentResolver.openInputStream(uri)
val bitmap = BitmapFactory.decodeStream(stream)
binding.ivPost.setImageBitmap(bitmap)
}
}
// 갤러리 실행(image 한정 : "image/*")
galleryResult.launch("image/*")
- 내 파일 연결 프로그램 코드 구현
// 내 파일 실행 객체 및 결과
private val fileResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
if(it.resultCode == RESULT_OK) {
it.data?.data?.let { uri ->
val stream = requireActivity().contentResolver.openInputStream(uri)
val bitmap = BitmapFactory.decodeStream(stream)
binding.ivPost.setImageBitmap(bitmap)
}
}
}
// 내 파일 실행(모든 파일 : "*/*")
fileResult.launch(Intent(Intent.ACTION_GET_CONTENT).apply { type = "*/*" })
반응형
'안드로이드' 카테고리의 다른 글
[Android][Kotlin] buildSrc Version Catalog 사용하기 (0) | 2024.06.28 |
---|---|
[Android][Kotlin] Hilt 종속성 및 사용법 & 간단한 랜덤 색상 뽑기 (0) | 2024.05.24 |
[Android][Kotlin] 화면 사이즈 구하기(Size) (0) | 2024.05.16 |
[Android][Kotlin] Activity, Fragment by viewModels() 사용 및 종속성 (0) | 2024.04.23 |
[Android][Kotlin] setOnClickListener 단시간 내 중복 방지 및 동시 터치 방지 (0) | 2024.03.29 |