web-dev-qa-db-ja.com

Android:Picassoの画像の読み込みに失敗しました。エラーメッセージを表示する方法

Picstoreライブラリを使用して、メディアストアにイメージストアをロードしようとしています。 load(imageview、callback)を呼び出すと、picassoはonSuccessではなくonFailを呼び出します。イメージが正常にロードされなかった理由を知るにはどうすればよいですか?

46
LittleFunny

ビルダーを使用:

    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);

編集

バージョン2.71828では、onErrorコールバックに例外を追加しました:

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

                @Override
                public void onError(Exception e) {
                }
            })
159

コールバックを使用すると、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);
                    }
                });
11
TVT. Jake

Kotlinとラムダ式でPicassoを使用する場合は、次のように短くすることができます。

val picasso = Picasso.Builder(context)
            .listener { _, _, e -> e.printStackTrace() }
            .build()

...そして、あなたはいつものように画像を読み込むことができます:

picasso.load(url).into(imageView)
7
donfuxx

Manifestにインターネット許可を追加しましたか? Kevinの回答 here で、例外ログを参照し、ここに例外を投稿してください。

3
viper