GlideをCoroutineで使う

2022-02-27
AndroidKotlin

はじめに

特にこだわりがなければCoroutineに対応したイメージローダーを使うのが良いと思います。

GlideとCoroutine

Glideはsubmitとgetで同期的に画像が取得できるのでこれをCoroutineで呼び出すだけです。
複数の画像を並列でロードすることもできます。

object AsyncImageLoader {
suspend fun load(context: Context, url: String?) = withContext(Dispatchers.IO) {
kotlin.runCatching {
Glide.with(context)
.load(url)
.submit()
.get()
}.getOrNull()
}
suspend fun load(context: Context, urlList: List<String?>) = coroutineScope {
urlList.map{ async { AsyncImageLoader.load(context, it) } }.awaitAll()
}
}
© 2022 シロボタン - Context Composition