Выбирать изображения с помощью обратного вызова в Picasso?

Я хочу показать серию фотографий без пробелов между фотографиями, где фотографии меняются с регулярным интервалом. Я понял, что Picasso инициализирует ImageView до того, как он начнет загружаться, и он всегда делает это, независимо от того, выбрал ли я () или нет, перед вызовом ().

Я извлекаю (), чтобы сохранить промежуток между изображениями малыми, а также использовать .placeholder (R.color.black), но разрыв все еще отображается, даже когда изображение загружается из памяти.

Мой код выглядит так

Picasso.with(getContext()).load(url).fetch(); 

Затем с задержкой [которая в настоящее время исправлена ​​и которую я хочу настроить в зависимости от скорости сети]

 Picasso.with(getContext()).load(url).into(screenSurface); 

Я заметил, что fetch () не поддерживает никаких параметров обратного вызова и возвращает void, поэтому мне кажется невозможным узнать, когда кеш нагревается.

Два вопроса:

  1. Можно ли заметить, когда изображение кэшируется?
  2. Есть ли другой способ избавиться от перерывов между изображениями и заставить их появляться на регулярной основе.

[Я знаю, что могу как-то вручную это кодировать, но если Picasso поддерживает его, я бы хотел использовать его.]

Исходя из источника , похоже, что fetch не делает ничего по завершении, включая уведомление любых потенциальных слушателей. К сожалению, FetchAction не является общедоступным классом, поэтому вы не можете переопределить эту функциональность.

Вы можете решить эту проблему с помощью настраиваемого подкласса Target , например:

 Picasso.with(getContext()).load(url).into(new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { // cache is now warmed up } @Override public void onBitmapFailed(Drawable errorDrawable) { } @Override public void onPrepareLoad(Drawable placeHolderDrawable) { } }); 

Я знаю, что это старый вопрос, но команда fetch() допускает обратные вызовы, такие как fetch(Callback callback) . У этого есть onSuccess() и onError() для запрошенной загрузки URI.

См. Здесь подробности javadoc

Метод .into() предоставляет второй аргумент, который является обратным вызовом для успеха и неудачи. Вы можете использовать это, чтобы отслеживать, когда изображение прибыло.

Javadoc: http://square.github.io/picasso/javadoc/com/squareup/picasso/RequestCreator.html#into-android.widget.ImageView-com.squareup.picasso.Callback-

Взгляните на это: Как реализовать свой собственный кеш диска с библиотекой picasso – Android? У Джейка Уортона есть ответ.