如何在另一个 activity 中重复使用下载的图像?
How to reuse a downloaded image in another activity?
我已经使用 Glide 库下载了一张图片,但我想在另一个 activity 中 重复使用 该图片,而无需再次下载。怎么做?
我已经尝试使用 .diskCacheStrategy(DiskCacheStrategy.ALL)
但我不知道下一步该怎么做..
Glide.with(activityContext)
.load(posterURL)
.into(holder.poster);
我原以为我可以将它作为额外数据传递给 intent 作为图像而不是 URL
你可以通过多种方式做到这一点
1) 在其他 Activity 中使用相同的 URL 任何你想像当前一样使用 Glide 加载图像的地方。
2) 可以从Glid获取位图,可以写入目录保存路径。并使用相同的文件路径解码其他 activity.
中的图像
要通过 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) {
}
});
注意:如果您不想写入文件,您可以保留该资源位图并将该位图传递给其他人Activity。
使用下面的代码
Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImage", bitmap);
并使用下面的代码检索图像
Intent intent = getIntent();
Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");
重要的一点是 Bitmap 实现了 Parcelable,所以它可以毫无顾虑地通过。
如果您使用.diskCacheStrategy(DiskCacheStrategy.ALL)
,它只会在第一次下载。
第二次加载图像并使用相同的 URL
时,它将从 Cache
.
获取图像
所以只需将 URL
传递给另一个 Activity
并使用相同的 Glide
代码
我已经使用 Glide 库下载了一张图片,但我想在另一个 activity 中 重复使用 该图片,而无需再次下载。怎么做?
我已经尝试使用 .diskCacheStrategy(DiskCacheStrategy.ALL)
但我不知道下一步该怎么做..
Glide.with(activityContext)
.load(posterURL)
.into(holder.poster);
我原以为我可以将它作为额外数据传递给 intent 作为图像而不是 URL
你可以通过多种方式做到这一点
1) 在其他 Activity 中使用相同的 URL 任何你想像当前一样使用 Glide 加载图像的地方。
2) 可以从Glid获取位图,可以写入目录保存路径。并使用相同的文件路径解码其他 activity.
中的图像要通过 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) {
}
});
注意:如果您不想写入文件,您可以保留该资源位图并将该位图传递给其他人Activity。
使用下面的代码
Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImage", bitmap);
并使用下面的代码检索图像
Intent intent = getIntent();
Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");
重要的一点是 Bitmap 实现了 Parcelable,所以它可以毫无顾虑地通过。
如果您使用.diskCacheStrategy(DiskCacheStrategy.ALL)
,它只会在第一次下载。
第二次加载图像并使用相同的 URL
时,它将从 Cache
.
所以只需将 URL
传递给另一个 Activity
并使用相同的 Glide
代码