2014-09-09 1 views
32

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

+1

Есть посмотреть на этот вопрос ответил [Picasso библиотека, Android: Использование Error Слушатель] [1] [1]: http://stackoverflow.com/questions/17052538/pi casso-library-android-using-error-listener –

ответ

119

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

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

Это отлично работает, спасибо! –

9

При использовании обратного вызова, то 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); 
        } 
       }); 
+5

Как получить причину неспособности загрузить изображение в 'onError'? – Raptor

+0

Метод onError не содержит информации об ошибке. Это поможет вам понять, что происходит ошибка show «mErrorImage» –

+0

Вот что я знаю. Вместо этого следует использовать глобальный слушатель. – Raptor

1

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

+0

Это должен быть комментарий. –

1

В случае, если вы хотите использовать Пикассо с Котлин и лямбда-выражения оно может быть как это:

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

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

picasso.load(url).into(imageView) 
Смежные вопросы