lok*_*esh 8 android android-jetpack-compose coil jetpack-compose-accompanist
我正在使用线圈(版本 2.1.0)从 URL 加载图像。当有网络连接时,图像加载正常。但是,当没有网络连接时,图像不会像我预期的那样从缓存中提取。这是我的一段代码。
class App : Application(), ImageLoaderFactory {
override fun newImageLoader(): ImageLoader {
return ImageLoader.Builder(this)
.memoryCache {
MemoryCache.Builder(this)
.maxSizePercent(0.25)
.build()
}
.diskCache {
DiskCache.Builder()
.directory(cacheDir.resolve("image_cache"))
.maxSizeBytes(5 * 1024 * 1024)
.build()
}
.build()
}
}
Run Code Online (Sandbox Code Playgroud)
在撰写中:
val context = LocalContext.current
val placeholderImage = R.drawable.ic_placeholder
val imageRequest = ImageRequest.Builder(context)
.data(imageUrl)
.memoryCacheKey(imageUrl)
.diskCacheKey(imageUrl)
.placeholder(placeholderImage)
.error(placeholderImage)
.fallback(placeholderImage)
.diskCachePolicy(CachePolicy.ENABLED)
.memoryCachePolicy(CachePolicy.ENABLED)
.transformations(CircleCropTransformation())
.build()
AsyncImage(
model = imageRequest,
modifier = Modifier.size(64.dp),
contentDescription = null,
imageLoader = context.imageLoader
)
Run Code Online (Sandbox Code Playgroud)
当设备离线时,它仅加载占位符图像,而不是按预期从缓存中加载图像。我在这里缺少什么?
lok*_*esh 15
我logger(DebugLogger())
在 ImageLoader 中使用来弄清楚发生了什么,我发现当 Coil 尝试离线加载图像时,应用程序遇到了 HTTP 504 错误。所以我添加.respectCacheHeaders(false)
到ImageLoader中。这似乎对我有用。
希望这可以帮助遇到类似问题的其他人。
归档时间: |
|
查看次数: |
6217 次 |
最近记录: |