Поделиться изображением с Glide

У меня есть Activity с ViewPager и соответствующий адаптер с изображениями, поэтому я могу перемещать их влево или вправо. Изображения загружаются с помощью библиотеки Glide из ответа API, они сохраняются с помощью 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);

}

Итак, я не знаю, как получить URI из текущего изображения в адаптере из Glide в месте с вопросительным знаком? Любой совет? Или любая другая идея о том, как это реализовать?

По моему мнению, сохраните изображение, затем поделитесь им

Ashvin solanki 30.07.2018 16:12

Но изображение уже сохранено Glide, знаете, как его получить?

RadoVidjen 30.07.2018 16:16

Если вы хотите поделиться изображением с другим приложением, вы хотите сохранить изображение на устройстве

Ashvin solanki 30.07.2018 16:19

@Ashvinsolanki Очевидно, вы не поняли вопрос. Спасибо, в любом случае.

RadoVidjen 30.07.2018 16:24

Так объясните вопрос

Ashvin solanki 30.07.2018 16:25

ты решил свой вопрос?

Ashvin solanki 25.03.2019 05:32
0
6
1 109
1

Ответы 1

Сначала получите выбранное изображение В вашем адаптере:

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);
        }
    });

Поделитесь изображением с отображением изображения, затем загрузите это изображение в ImageView с помощью Glide. Затем сохраните это изображение на устройство и получите путь к сохраненному изображению, которым вы можете поделиться с другими приложениями.

Или же

См. Этот вопрос

Другие вопросы по теме