Kotlin

[Kotlin] 이미지 다운로드받기 - ByteArray Image Download

eulBlue 2023. 11. 29. 19:05

📱테스트 환경

Samsung Galaxy Android 13 • Android 10


이미지를 저장하는 방식을 간단히 알아보도록 하자.

01.ImageDownLoad.kt 생성

if (imageData != null) {
    // 외부 저장소에 바이트 배열을 파일로 저장
    val fileName = "downloaded_image.jpg"
    val file = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), fileName)

    FileOutputStream(file).use { fileOutputStream ->
        fileOutputStream.write(imageData)
    }

    // 갤러리에 이미지 추가
    val mediaScanIntent = Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)
    val contentUri = Uri.fromFile(file)
    mediaScanIntent.data = contentUri
    context.sendBroadcast(mediaScanIntent)
} else {
    // 이미지 데이터가 null인 경우 처리
    Log.e("error", "Image data is null.")
}
  1. imageData != null → Null 체크 먼저 해준다음

  2. File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), fileName) → 외부 디렉토리인 Pictures 에 파일을 생성해준다.

  3. FileOutputStream 생성 → 스트림을 사용하여 imageData 데이터 그려준다.

  4. Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE) → 미디어 스캐닝을 위한 인텐트를 생성한다.

  5. Uri.fromFile(file) → 파일로부터 contentUri를 생성해준다.

  6. context.sendBroadcast(mediaScanIntent) → 미디어 스캔을 요청하는 브로드캐스트를 보내주면 끝난다.