Glide : 在 Android/Java 中获取缓存文件位置

and*_*ann 9 android caching android-glide

我正在使用 Glide 在我的应用程序中显示图像。现在我想知道 Glide 存储从 url 下载的缓存图像的位置。

我正在使用下面的代码来显示图像。

Glide.with(mContext)
            .load(mData.get(position).getImage())
            .centerCrop()
            .override(300, 300)
            .placeholder(R.drawable.default_small)
            .diskCacheStrategy(DiskCacheStrategy.SOURCE)
            .into(holder.ivCapturedImage);
Run Code Online (Sandbox Code Playgroud)

Joo*_*soo 16

如果您使用 Glide 4.8.0 或更高版本,这是一种可用的方法

科特林:

val file: File = Glide.with(activity).asFile().load(url).submit().get()
val path: String = file.path
Run Code Online (Sandbox Code Playgroud)

爪哇:

File file = Glide.with(activity).asFile().load(url).submit().get();
String path = file.getPath();
Run Code Online (Sandbox Code Playgroud)

然后你可以得到一个路径看起来像

/data/user/0/{package_name}/cache/image_manager_disk_cache/64c0af382f0a4b41c5dd210a3e945283d91c93b1938ee546f00b9ded701a7e40.0
Run Code Online (Sandbox Code Playgroud)


小智 3

 private String getImgCachePath(String url) {\n    FutureTarget<File> futureTarget = Glide.with(getBaseContext()).load(url).downloadOnly(100, 100);\n    try {\n        File file = futureTarget.get();\n        String path = file.getAbsolutePath();\n        return path;\n    } catch (InterruptedException e) {\n        e.printStackTrace();\n    } catch (ExecutionException e) {\n        e.printStackTrace();\n    }\n    return null;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

参数url为图片的网络地址\xef\xbc\x8c,100,100为缓存图片的宽度和高度,您可以根据需要更改。\n然后\xef\xbc\x8c路径为缓存路径。

\n