android - 从 Glide 分享图片
问题描述
我有ViewPager
带有图像的活动和适当的适配器,所以我可以向左或向右滑动它们。图像从 API 响应中使用 Glide 库加载,它们保存为diskCacheStrategy(DiskCacheStrategy.RESOURCE)
. 所以我想知道如何与原生 Android 共享共享它们?我需要我找不到的图像的路径。
这是代码:
适配器:
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
View view = layoutInflater.inflate(R.layout.image_preview_item, container, false);
String imageUrl = mImageObjectList.get(position);
currentImage = view.findViewById(R.id.ivCurrentImage);
GlideApp.with(mContext)
.asDrawable()
.load(imageUrl)
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.transition(DrawableTransitionOptions.withCrossFade())
.into(currentImage);
container.addView(view);
return view;
}
我shareSelectedImage()
在适配器中有方法,当用户单击共享时将从主要活动中调用该方法:
public void shareSelectedImage() {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/jpg");
String shareBody = "Text body";
intent.putExtra(Intent.EXTRA_STREAM, ?????);
//intent.putExtra(Intent.EXTRA_TEXT, shareBody);
listener.shareImage(intent);
}
所以我不知道如何从问号位置上的 Glide 适配器中的当前图像获取 URI?有什么建议吗?或者关于如何实现这一点的任何其他想法?
解决方案
首先,在您的适配器中获取所选图像:
currentImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent DisplayImage=new Intent(context.getApplicationContext(), DisplayImage.class);
DisplayImage.putExtra("ImageUrl",imageUrl);
context.startActivity(DisplayImage);
}
});
与显示图像活动共享图像,然后使用 Glide 在 ImageView 中加载此图像。然后将此图像保存到设备并获取保存图像的路径,您可以与其他应用程序共享。
或者
推荐阅读
- python - 在 Pygame 中计时敌人列表的 blit
- python - Pyspark - 在 groupBy 之后返回选定的列。和聚合
- r - 如何使用选择负数定义基线
- javascript - 如何在 Javascript 的 If/Else 语句中添加两个以上的条件?
- google-cloud-platform - 部署时云函数抛出错误
- flutter - 在 Flutter 中隐藏文本字段中的某些字符
- ios - 在 Xcode 中显示 AdMob gdpr 同意书
- python - 2020 年谷歌编码挑战题:未指明的单词
- vbscript - 了解 VBS 多行符号
- node.js - 创建 S3 存储桶 nodejs 时出现 aws-sdk 问题