android - Glide - 在尝试加载照片时回退或错误后调用方法

标签 android android-studio android-glide

Glide - 在尝试加载照片时回退或出错后调用方法。

嗨!

有什么方法可以检查 Glide 是否从链接加载照片或在链接无效或照片时使用 fallback/error不可用?

我的意思是,我想在 Glide 不加载照片时调用一个方法(加载其他照片)。

这是我的 Glide 例如:

Glide
        .with(mActivity)
        .load(news.getPagemap().getCseThumbnail().get(0).getSrc())
        .fallback(R.drawable.bg_gradient)
        .error(R.drawable.bg_gradient)
        .centerCrop()
        .crossFade()
        .diskCacheStrategy(DiskCacheStrategy.SOURCE)
        .into(holder.photo);

我试图比较ConstantValues - holder.photo.getDrawable().getConstantState().equals(mActivity.getResources().getDrawable(R.drawable.bg_gradient).getConstantState( )) 但是遇到了 NullPointerException

最佳答案

这对我有帮助:

private void loadPicture(final ViewHolder holder, String photoUrl, final Boolean shouldLoadAgain) {
    holder.progressBar.setVisibility(View.VISIBLE);

    Glide
        .with(mActivity)
        .load(photoUrl)
        .fallback(R.drawable.bg_gradient)
        .error(R.drawable.bg_gradient)
        .centerCrop()
        .crossFade()
        .listener(new RequestListener<String, GlideDrawable>() {
            @Override
            public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                holder.progressBar.setVisibility(View.GONE);
                if (shouldLoadAgain)
                    loadPicture(holder, mPhotoUrl, false);
                return false;
            }

            @Override
            public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                holder.progressBar.setVisibility(View.GONE);
                return false;
            }
        })
        .diskCacheStrategy(DiskCacheStrategy.SOURCE)
        .into(holder.photo);
}

关于android - Glide - 在尝试加载照片时回退或错误后调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38250802/

相关文章:

Android使用Paint绘制两种不同颜色的虚线

java - 在 Android 的 Runnable 中创建条件

android - 用于 Play 商店发布的 Facebook key 哈希

java - 检测并删除外部库中未使用的类

android - 检查消息是否已通过 whatsapp 成功发送

android - appcompat-v7 :27. 1.1 与 firebase-ads :15. 0.1 冲突

android - 将 ConcurrentHashMap::newKeySet 与 Android coreLibraryDesugaring 结合使用

android - 如何在 glide 4 中为圆形裁剪图像制作阴影

android - 如何通过 DI (Koin) 向 @BindingAdapter 方法提供某些内容?

kotlin - Android - Glide ".placeholder"方法无法识别