// 카메라 실행 객체 및 결과
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 = "*/*" })