Подтвердить что ты не робот

Android: загружено изображение Picasso. как показать сообщение об ошибке

Я пытаюсь использовать библиотеку picasso для загрузки хранилища изображений в медиастаре. Когда я вызывал загрузку (образы просмотра изображений, обратный вызов), вызов picasso onFail вместо onSuccess. Как узнать, почему изображение не было загружено успешно?

4b9b3361

Ответ 1

Использовать построитель:

    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

Когда вы используете обратный вызов, 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);
                    }
                });

Ответ 3

Вы добавили разрешение для Интернета в Manifest? С ответом Кевина здесь, см. Журнал исключений и публикуйте здесь исключение.

Ответ 4

Если вы хотите использовать Picasso с выражением Kotlin и лямбда, это может быть так коротким, как это:

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

... и затем вы можете загружать изображение, как обычно:

picasso.load(url).into(imageView)