当请求级别设置为DISK_CACHE时,壁画不加载远程URL数据

时间:2019-03-27 09:35:36

标签: android fresco

我正在尝试使用fresco进行调用,然后在我的应用程序中使用“磁盘缓存”网络映像,但是fresco根本没有加载该映像。

这是我正在使用的代码,使用图像请求和DraweeController的主题是数据一旦加载就存储到disk_cache中。

 Uri uri = Uri.parse(details.getImgUrl());
        ImageRequest request = ImageRequestBuilder
                .newBuilderWithSource(uri)
                .setLowestPermittedRequestLevel(ImageRequest.RequestLevel.DISK_CACHE)
                .build();

            AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
                    .setImageRequest(request)
                    .setOldController(banner.getController())
                    .build();
            banner.setController(controller);

尽管如果我使用ImageRequest.RequestLevel.FULL_FETCH,则图像已加载但未缓存

1 个答案:

答案 0 :(得分:0)

我希望这对您有帮助

在此链接上查看Plamenko的答案。https://github.com/facebook/fresco/issues/80

如果您请求管道提供已编码的图像,并使用ImageRequestBuilder.setLowestPermittedRequestLevel指定DISK_CACHE,则如果在磁盘高速缓存的任何位置找到该图像,则管道将为您返回JPEG字节;如果未找到该图像且已满,则管道将返回null -fetch必须执行。

代替壁画

尝试使用 GlideApp 进行图像缓存。它将解决您的问题。好吧,您可以轻松地集成它,如果您遇到困难,那么我会帮助您。但是请确保您不仅使用 Glide ,还使用 GlideApp

希望我不会误解您的问题并提供错误的答案。