Coil 은 썸네일 기능을 따로 제공하지 않고 있습니다.
이때 사용해 볼 수 있는 확장 함수 입니다.
fun ImageView.loadOriginalImage(originUrl: String, thumbnailUrl: String) {
CoroutineScope(Dispatchers.Main.immediate).launch {
val thumbnail = async(Dispatchers.IO) {
val request = ImageRequest.Builder(context)
.data(thumbnailUrl)
.build()
Coil.execute(request).drawable
}
val original = async(Dispatchers.IO) {
val request = ImageRequest.Builder(context)
.data(originUrl)
.build()
Coil.execute(request).drawable
}
original.invokeOnCompletion { thumbnail.cancel() }
val thumbDrawable = try {
thumbnail.await()
} catch (e: CancellationException) {
null
}
setImageDrawable(thumbDrawable)
val fullSizeDrawable = original.await()
setImageDrawable(fullSizeDrawable)
}
}
'Android > Development Tips' 카테고리의 다른 글
알고 계시나요 Fragment 가 복원되는 시점? (1) | 2021.12.12 |
---|---|
BroadcastReceiver 사용할 때 유의점 (0) | 2021.12.12 |
안드로이드 하드웨어 비트맵 (0) | 2021.11.20 |
ViewModel 에서 Fragment, Activity 로 콜백을 조심하자 (0) | 2021.11.18 |
Google login errorCode 12500 인 경우 (0) | 2021.06.07 |