首页 > 解决方案 > 从 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?有什么建议吗?或者关于如何实现这一点的任何其他想法?

标签: androidandroid-bitmapandroid-imageandroid-glideandroid-sharing

解决方案


首先,在您的适配器中获取所选图像:

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 中加载此图像。然后将此图像保存到设备并获取保存图像的路径,您可以与其他应用程序共享。

或者

看到这个问题


推荐阅读