android - Glide : onError Callback

标签 android android-glide

我正在从 Picasso 切换到 Glide。一切正常,除了我找不到获取错误回调的方法。我想检索一个位图,传递它并从中生成一个 Android 调色板。此外,虽然可以为加载调用提供 errorDrawable,但在使用 SimpleTarget 时,它不会显示在 onResourceReady 中。

在 Picasso 中我是这样做的:

target = new Target() {
            @Override
            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                //handle Bitmap, generate Palette etc. 
            }

            @Override
            public void onBitmapFailed(final Drawable errorDrawable) {
                // use errorDrawable to generate Palette
            }

            @Override
            public void onPrepareLoad(final Drawable placeHolderDrawable) {
            }
        };
        int width =  (int) DisplayUnitsConverter.dpToPx(this, 120);
        int height =  (int) DisplayUnitsConverter.dpToPx(this, 40);
        Picasso.with(this).load(config.getPathToLogo()).resize(width, height).error(errorDrawableId).into(target);

我的滑动代码如下所示:

Glide.with(context)
    .load(config.getPathToLogo())
    .asBitmap()
    .into(new SimpleTarget<Bitmap>(width, height) {
         @Override
         public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
             //handle Bitmap, generate Palette etc. 
         }
    });

谢谢。

最佳答案

对于遇到同样问题的每个人——你需要使用监听器方法。例如:

   Glide.with(activity)
            .load(getPhoto().getUrl())
            .apply(
                    new RequestOptions()
                            .error(R.drawable.icon_placeholder)
                            .centerCrop()
            )
            .listener(new RequestListener<Drawable>() {
                @Override
                public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                 //on load failed
                    return false;
                }

                @Override
                public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                    //on load success
                    return false;
                }
            })
            .transition(withCrossFade())
            .into(view);

关于android - Glide : onError Callback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38079354/

相关文章:

android - 为什么 Glide 不会从资源 ID 加载图像到我的 ImageView?

java - @GlideOption 添加/扩展 RequestBuilder 来自定义监听器并实现 Java 8 中的功能方法

android - Glide 库中的 BitmapTransformation 未按预期工作

java - 包含 lambda 表达式的单元测试方法失败 Android Studio

android - 连接到 LocalServerSocket 时出现 EMFILE(打开的文件过多)错误?

javascript - Frida - 访问具有所需类型的类属性

java - 平移后更新android中的图像坐标

android - LiveData 在第一次回调后删除观察者

android - 如果 Glide 失败,如何重试图像加载?

android - 在最新的 Firebase 版本 (10.2.4) 中使用 Glide 和 FirebaseUI 加载图像