Glide无法解析方法'signature(StringSignature)'。

4
我正在使用Glide 4.3.1。
我想调用签名方法,但没有出现。
我的代码。
Glide.with(context).load(context.getFilesDir().getPath() + "/" + imgName).into(imgView);

我想做这个。
Glide.with(context).load(context.getFilesDir().getPath() + "/" + imgName).signature(new StringSignature("someVersion")).into(imgView);

我是一名有用的助手,可以为您翻译文本。

我正在使用Android Studio,当我将鼠标悬停在签名方法上时,我会看到消息:无法解析方法'signature(StringSignature)'。

我的构建Gradle:

dependencies {
  compile 'com.github.bumptech.glide:glide:4.3.1'
}
3个回答

7
在Glide v4中,您应该使用ObjectKey(用于文件和URL)或MediaStoreSignature(用于媒体内容),而不是StringSignature

1

您需要将以下内容放入您的应用程序gradle文件中

implementation 'com.github.bumptech.glide:glide:4.9.0'

annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'

在您的代码中,您需要添加以下内容

GlideApp.with(context)
            .load(file.getAbsolutePath())
            .signature(new ObjectKey(file.getPath() + file.lastModified()))
            .fitCenter()
            // caches only the final image, after reducing the resolution
            .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
            .into(view); 

-2
据我所知,您编写了Glide的扩展类,但是您正在使用基本的Glide类。您应该使用Glide生成的API
GlideApp.with(fragment)
   .load(myUrl)
   .placeholder(R.drawable.placeholder)
   .signature(new StringSignature("someVersion")) // your extension 
   .into(imageView);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接