我有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?有什么建议吗?或关于如何实现此目标的其他任何想法?
答案 0 :(得分:0)
首先,获取选定的图像 在您的适配器中:
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中。然后将此图像保存到设备并获取保存图像的路径,您可以将其与其他应用程序共享。
或