UPDATE: if you're searching for a solution in 2020 backed by Kotlin Coroutines, try Coil.
Coil is an acronym for Coroutine Image Loader.
Features
Gradle Setup:
Coil is available on mavenCentral()
.
implementation("io.coil-kt:coil:1.0.0")
Quick Start
To load an image into an ImageView, use the load extension function:
// URL
imageView.load("https://www.example.com/image.jpg")
// Resource
imageView.load(R.drawable.image)
// File
imageView.load(File("/path/to/image.jpg"))
or on Background threads
// Coil (suspends the current coroutine; non-blocking and thread safe)
val request = ImageRequest.Builder(context)
.data(url)
.size(width, height)
.build()
val drawable = context.imageLoader.execute(request).drawable
You can also migrate from Picasso/Glide
Full documentation here