我已经使用Glide库下载图像,但是我想在另一个活动中重用该图像,而无需重新下载。怎么做?
我尝试使用.diskCacheStrategy(DiskCacheStrategy.ALL)
,但是我不知道下一步该怎么做。
Glide.with(activityContext)
.load(posterURL)
.into(holder.poster);
我希望我可以将它作为额外的数据传递给图像,而不是作为URL
答案 0 :(得分:1)
如果您使用.diskCacheStrategy(DiskCacheStrategy.ALL)
,它将仅首次下载。
第二次加载图像并使用相同的URL
时,它将从Cache
中获取图像。
因此,只需将URL
传递给另一个Activity
并使用相同的Glide
代码
答案 1 :(得分:0)
您可以通过多种方式来实现
1)无论您要使用Glide加载图像时,都在其他Activity中使用相同的URL。
2)您可以从Glid获取位图,并且可以写入目录并保存路径。并使用相同的文件路径对其他活动中的图像进行解码。
要通过Glide获取位图,请使用以下代码
Glide.with(mContext)
.asBitmap()
.load("url")
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
//resource is the bitmap you can use
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
注意:如果不想写入文件,则可以保留该资源位图并将该位图传递给其他活动。
为此,请使用以下代码
Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImage", bitmap);
要检索图像,请使用以下代码
Intent intent = getIntent();
Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");
重要的一点是,位图实现了Parcelable,因此可以通过它而无需担心。