Получение Bitmap из ImageView с задержкой

112
28 ноября 2019, 06:50

Есть ImageView img, в которое картинка загружается по ссылке при помощи Picasso:

ImageView img = listItemView.findViewById(R.id.img);
Picasso.get().load(Uri.parse(currentNews.getmImg())).into(img);

Сама ссылка парсится с помощью Jsoup.

Проблема в том, что в момент выполнения кода

Bitmap bitmap = ((BitmapDrawable)img.getDrawable()).getBitmap();

картинка не успевает загрузиться, и приложение крашится с логом

java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference

Как можно обойти эту проблему более "лаконично"? Установить задержку выполнения получения Bitmap через Handler.postDelay?

Весь код выполняется в адаптере.

Answer 1

Для таких целей у Picasso есть callback

Picasso.with(this)
   .load(url)
   .into(img, new Callback() {
         @Override
         public void onSuccess() {
         }
         @Override
         public void onError() {
         }
    }
);
READ ALSO
После закрытия окна по кнопке введенные значения не сохранятся в переменных данного контроллера javafx

После закрытия окна по кнопке введенные значения не сохранятся в переменных данного контроллера javafx

После закрытия окна по кнопке введненные значения не сохранятся в переменных данного контроллераИмеется контроллер он отображает новое...

138
Пути к ресурсам

Пути к ресурсам

Есть программа, которой нужно иногда считывать данные из файловВ самой программе указываю путь:

99
for loop в Kotlin

for loop в Kotlin

Еще не успел освоить что то более сложное чем простые циклы в kotlin, поэтому не знаю как можно взять индекс в самом теле циклаДля примера на java цикл...

130
BeanPostProcessor vs (@PostConstruct» and «@PreDestroy»)

BeanPostProcessor vs (@PostConstruct» and «@PreDestroy»)

BeanPostProcessor дает возможность подключиться к жизненному циклу бина и взаимодействовать с ним по мере его обработки, а именно с помощью двух...

121