可绘制资源的线圈 ImageRequest

Coil ImageRequest for drawable resource

我正在尝试将 Coil 的 ImageRequest 准备为:

val drawable = when {
        mimeType.startsWith("image") -> R.drawable.ic_baseline_image_24
        mimeType.startsWith("video") -> R.drawable.ic_baseline_ondemand_video_24
        mimeType.startsWith("audio") -> R.drawable.ic_baseline_audiotrack_24
        else -> R.drawable.ic_baseline_attach_file_24
}
val imageRequest = ImageRequest.Builder(context)
        .data(drawable)
        .crossfade(true)
        .target(imageView)
        .build()

//blah-blah
// and somewhere deep inside code
imageLoader.enqueue(imageRequest)

但是不行。

我想应该有另一种方法,或者 ImageRequest 不支持本地绘制?

基于Coil Documentation

All requests should set data (i.e. url, uri, file, drawable resource, etc.). This is what the ImageLoader will use to decide where to fetch the image data from. If you do not set data, it will default to NullRequestData.

而且您似乎做对了。我这边验证过了,你可以看看这个Github Repository。在我尝试重现您提到的问题的地方,它运行良好。请检查您的 imageView 的高度宽度或约束(如果您使用的是约束布局)布局。