Как загрузить мой заполнитель в случае невозможности загрузить URL-адрес? - PullRequest
0 голосов
/ 25 июня 2019

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

Я попытался добавить RequestListener и откат ошибки.

       Glide.with(imageView.getContext()).load(url)      
       .transition(DrawableTransitionOptions.withCrossFade())
       .apply(new RequestOptions().placeholder(placeholder))
       .error(Glide.with(imageView.getContext()).load(placeholder))
       .listener(new RequestListener<Drawable>() {
                    @Override
                    public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                        return false;
                    }

                    @Override
                    public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                        return false;
                    }
                })
                .into(imageView);

Я хочу, чтобы мой заполнитель загружался в моем изображении. Фактический результат заключается в том, что в моем просмотре изображений загружен какой-то заполнитель, не определенный мной, что-то указывает на то, что ссылка на изображение запрещена или что-то в этом роде. Ожидается: я хочу, чтобы мой заполнитель был загружен.

Ответы [ 6 ]

0 голосов
/ 25 июня 2019

Попробуйте использовать RequestOptions

RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(R.drawable.ic_placeholder);
requestOptions.error(R.drawable.ic_error);

Glide.with(context)
     .load(url)
     .apply(requestOptions)
     .into(holder.imageView);
0 голосов
/ 25 июня 2019

Попробуйте использовать этот код ниже.

Glide.with(your context).load(imageurl).apply(RequestOptions.placeholderOf(your drawable here)).error(your error drawable).into(your imageview);

Надеюсь, это сработает ...

0 голосов
/ 25 июня 2019

Попробуйте использовать это -

.error(getResourses.getDrawable(R.drawable.placeholder))

вместо использования этого -

.error(Glide.with(imageView.getContext()).load(placeholder))
0 голосов
/ 25 июня 2019

Вы можете ссылаться на код ниже, чтобы показать placeholder изображение в случае ошибки:

 Glide.with(context).load(BASE_URL + imageUrl)
                    .apply(new RequestOptions().placeholder(R.drawable.defaultimage)
                            .error(R.drawable.defaultimage)).into(imageView);
0 голосов
/ 25 июня 2019

Попробуйте это:

int placeholder = R.drawable.error 
GlideApp.with(imageView.getContext())
          .load(url)
          .apply(new RequestOptions().placeholder(placeholder)
              .error(placeholder).dontTransform()
              .diskCacheStrategy(DiskCacheStrategy.ALL))
          .into(mImageView);
0 голосов
/ 25 июня 2019

Вот модифицированный код:

int placeholder = R.drawable.placeholder

Glide.with(imageView.getContext())
            .load(url)
            .error(placeholder)
            .placeholder(placeholder)
            .into(imageView);
...