Android:Picasso加载图片失败.如何显示错误消息

Lit*_*nny 46 android image mediastore picasso

我正在尝试使用picasso库在mediastore中加载图像存储.当我调用load(imageview,callback)时,毕加索调用onFail而不是onSuccess.我如何知道图像未成功加载的原因?

Kev*_*rlo 163

使用构建器:

    Picasso.Builder builder = new Picasso.Builder(this);
    builder.listener(new Picasso.Listener()
    {
        @Override
        public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception)
        {
            exception.printStackTrace();
        }
    });
    builder.build().load(URL).into(imageView);
Run Code Online (Sandbox Code Playgroud)

编辑

对于版本2.71828,他们已将异常添加到onError回调中:

        Picasso.get()
            .load("yoururlhere")
            .into(imageView, new Callback() {
                @Override
                public void onSuccess() {
                }

                @Override
                public void onError(Exception e) {
                }
            })
Run Code Online (Sandbox Code Playgroud)


TVT*_*ake 11

当你使用回调时,picaso会调用onSuccess和onError方法!

File fileImage = new File(mPathImage);
        Picasso.with(mContext).load(fileImage)
                .placeholder(R.drawable.draw_detailed_view_display)
                .error(R.drawable.draw_detailed_view_display)
                .resize(200, 200)
                .into(holder.mImageEvidence, new Callback() {
                    @Override
                    public void onSuccess() {
                        holder.mMediaEvidencePb.setVisibility(View.GONE);
                    }

                    @Override
                    public void onError() {
                        holder.mErrorImage.setVisibility(View.VISIBLE);
                    }
                });
Run Code Online (Sandbox Code Playgroud)

  • 这不回答"如何显示错误消息". (9认同)
  • 如何在`onError`中找不到加载图像的原因? (7认同)

don*_*uxx 7

如果您想将Picasso与Kotlin和lambda表达式一起使用,它可能会像这样简短:

val picasso = Picasso.Builder(context)
            .listener { _, _, e -> e.printStackTrace() }
            .build()
Run Code Online (Sandbox Code Playgroud)

...然后您可以照常加载图片:

picasso.load(url).into(imageView)
Run Code Online (Sandbox Code Playgroud)