Intereting Posts
Проверьте, существует ли файл перед вызовом openFileInput Установщик пакета Android – как получить «Открыть» и «Готово» и результат работы как? Активация Bluetooth Активация диалогового окна предупреждения после поворота экрана Как получить доступ к ресурсам в проекте библиотеки Android Вставка текста на новый эмулятор Android Применение кнопки buttonStyle в качестве темы не работает, но если применяется к кнопке напрямую Ошибка: сборник Android в eclipse Gradle зависимости с Travis CI в Android-проекте Ионный андроид работает, но приложение не запускается по телефону, почему? Соглашения об именах в Android SDK Ошибка нескольких файлов dex при компиляции с помощью ant или Eclipse Конфигурация по умолчанию для xmpp для Android xmpp Свертывание макета инструментальной панели с помощью Viewpager внутри NestedScrollView Android: Softkeyboard выполняет действие при нажатии кнопки Done Как повернуть экран в альбомную (или портретную) программируемым способом?

Обратный вызов загрузки изображения Picasso

Я хочу использовать Picasso для загрузки трех последовательных изображений один поверх другого в списке. Использование методов, предлагаемых Picasso, делает это легким. Однако, поскольку эти изображения загружаются в разное время, это вызывает мерцающий эффект по мере поступления изображений. Например, иногда изображение 2 появляется перед изображением 1, а при загрузке изображения 1 вызывает неестественное заикание. Было бы лучше, если бы я мог видеть видимость списка невидимым, пока все изображения не будут доступны для отображения. Однако для Picasso не существует метода обратного вызова, который бы сигнализировал, когда изображение загружено.

Кто-нибудь знает о решении такого рода ситуации с использованием Пикассо?

благодаря

Solutions Collecting From Web of "Обратный вызов загрузки изображения Picasso"

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

Javadoc: https://square.github.io/picasso/2.x/picasso/com/squareup/picasso/RequestCreator.html#into-android.widget.ImageView-com.squareup.picasso.Callback-

Вот простой пример того, как выполнить обратный вызов загрузки изображения Picasso:

 Picasso.with(MainActivity.this) .load(imageUrl) .into(imageView, new com.squareup.picasso.Callback() { @Override public void onSuccess() { //do smth when picture is loaded successfully } @Override public void onError() { //do smth when there is picture loading error } }); 

Вы можете реализовать обратный вызов с помощью Picasso, как показано ниже:

 ImageHandler.getSharedInstance(getApplicationContext()).load(imString).skipMemoryCache().resize(width, height).into(image, new Callback() { @Override public void onSuccess() { layout.setVisibility(View.VISIBLE); } @Override public void onError() { } }); } 

Ниже приведена реализация моего класса ImageHandler:

 public class ImageHandler { private static Picasso instance; public static Picasso getSharedInstance(Context context) { if(instance == null) { instance = new Picasso.Builder(context).executor(Executors.newSingleThreadExecutor()).memoryCache(Cache.NONE).indicatorsEnabled(true).build(); } return instance; } } 

Вы можете использовать объект Target . Когда target1 получает обратный вызов, вы можете загрузить второй актив, затем получить обратный вызов в target2 , а затем запустить третью загрузку.