Download image from URL in Kotlin
Last updated on

Download image from URL in Kotlin

Android
AndroidKotlinAndroid-UI#Import 2025-05-27 00:21

In Android, we can get the image from synchronously and asynchronously, but it is more common to see in the later.

Download image synchronously

To download an image from a URL in Kotlin, you can use the URL class and the readBytes function from the kotlin.io library. The URL class represents a uniform resource locator and provides methods for creating and parsing URLs. The readBytes function can be used to read the contents of a file or a stream as a byte array.

Here's an example of how to use the URL and readBytes to download an image from a URL in Kotlin:

import java.net.URL
import kotlin.io.readBytes

fun main() { val url = URL(“https://www.example.com/image.png”) val imageData = url.readBytes() // TODO: Save the image data to a file or display it in an ImageView }

In this example, we create a URL object using the URL of the image as a string. We then use the readBytes function to read the contents of the URL as a byte array. The byte array contains the data for the image, which can then be saved to a file or displayed in an ImageView.

Download image asynchronously

To download an image from a URL in Kotlin asynchronously, you can use a coroutine combined with above method. For more

import kotlinx.coroutines.*
import java.net.URL
import kotlin.io.readBytes

fun main() { // Create a new coroutine scope val scope = CoroutineScope(Dispatchers.Default)

// Launch a new coroutine in the scope
scope.launch {
    val url = URL("https://www.example.com/image.png")
    val imageData = url.readBytes()
    // TODO: Save the image data to a file or display it in an ImageView
}

}

In this example, we create a new coroutine scope using the Dispatchers.Default dispatcher, which runs the coroutine on a shared background thread pool. We then launch a new coroutine in the scope using the launch function. Inside the coroutine, we create a URL object using the URL of the image as a string and use the readBytes function to read the contents of the URL as a byte array. The byte array contains the data for the image, which can then be saved to a file or displayed in an ImageView.