Как повторно использовать загруженное изображение в другой деятельности? - PullRequest
1 голос
/ 07 мая 2019

Я уже использовал библиотеку Glide для загрузки изображения, но я хочу повторно использовать это изображение в другом действии, не загружая его снова. Как это сделать?

Я пытался использовать .diskCacheStrategy(DiskCacheStrategy.ALL), но я не знал, что делать дальше ..

Glide.with(activityContext)
                .load(posterURL)
                .into(holder.poster);

Я ожидал, что смогу передать его в качестве дополнительных данных для изображения как изображения, а не как URL

Ответы [ 2 ]

1 голос
/ 07 мая 2019

Если вы используете .diskCacheStrategy(DiskCacheStrategy.ALL), он будет загружен только в первый раз.Во второй раз, когда вы загружаете изображение и используете тот же URL, оно будет взято с Cache.

Так что просто передайте URL другому Activity и используйте тот же Glide код

0 голосов
/ 07 мая 2019

Вы можете сделать это по-разному

1) Используйте тот же URL в других действиях, где вы хотите загрузить изображение с Glide, как вы делаете в настоящее время.

2) Вы можете получить растровое изображение от Glid и записать в каталог и сохранить путь. И используйте тот же путь к файлу для декодирования изображения в другой деятельности.

Чтобы получить растровое изображение через 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) {
            }
        });

ПРИМЕЧАНИЕ. Вы можете сохранить этот растровый рисунок ресурса и передать его в другое действие, если не хотите записывать в файл.

Для этого используйте код ниже

Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImage", bitmap);

А для получения изображения используйте код ниже

 Intent intent = getIntent(); 
 Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");

Важным моментом является то, что Bitmap реализует Parcelable, поэтому его можно передавать без каких-либо забот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...