美文网首页JetPack Compose 知识点
Coil compose 设置文件缓存位置

Coil compose 设置文件缓存位置

作者: 小强开学前 | 来源:发表于2022-08-22 12:40 被阅读0次

    Coil 默认会有一个 ImageLoader,设置的磁盘缓存文件路径为/data/data/<包名>/cache/image_cache/

    如果要自定义,需要创建自己的ImageLoader

    // image_manager_disk_cache 是 Glide 的默认缓存路径
    ImageLoader.Builder(this).diskCache {
        DiskCache.Builder()
            .directory(this.cacheDir.resolve("image_manager_disk_cache"))
            .maxSizePercent(0.02)
            .build()
    }.memoryCache {
        MemoryCache.Builder(this)
            .maxSizePercent(0.25)
            .build()
    }.build()
    

    按照官方文档一般有两种使用方式

    全局默认的需要在 APP 初始化的时候创建
    特殊页面,使用单独的 ImageLoader,然后每个控件指定这个ImageLoader

    1. APP 初始化时配置全局 ImageLoader

    Application 实现ImageLoaderFactory接口,重写newImageLoader方法

    class MyApplication:Application,ImageLoaderFactory{
        override fun newImageLoader(): ImageLoader {
            ImageLoader.Builder(this)./**TODO*/
        }
    }
    

    或者可以在Application初始化的时候调用这样

    Coil.setImageLoader(/**TODO*/)
    

    2. 特殊页面初始化

    
     // 设置 ImageLoader
    class HomeworkDetailActivity : BaseComposeActivity() {
    
        lateinit var fileIdImageLoader :ImageLoader
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            fileIdImageLoader = ImageLoader.Builder(this).diskCache {
                DiskCache.Builder()
                    .directory(this.cacheDir.resolve("image_manager_disk_cache"))
                    .maxSizePercent(0.02)
                    .build()
            }.memoryCache {
                MemoryCache.Builder(this)
                    .maxSizePercent(0.25)
                    .build()
            }.build()
    }
    

    3. 调用

    context.imageLoader是全局的 ImageLoader, context可以使用LocalContext.current获取
    特殊页面需要指定

    SubcomposeAsyncImage(
        modifier = modifier,
        imageLoader = imageLoader,
        model = getHomeworkRequest(LocalContext.current, fileId),
        contentDescription = contentDescription,)
    

    相关文章

      网友评论

        本文标题:Coil compose 设置文件缓存位置

        本文链接:https://www.haomeiwen.com/subject/znkigrtx.html