#android #picasso #lib
#Android #picasso #библиотека
Вопрос:
Слева приведен список, отображаемый на уровне API 19, а справа — API 28. Для API 19 я не могу загружать изображения флага с помощью Picasso. https://i.stack.imgur.com/PU7QJ.png
Вот как я это делаю прямо сейчас.
interface ImageFetcher {
fun loadImage(url: String, callback: (bitmap: Bitmap) -> Unit)
}
class RemoteImageFetcher(val context: Context) : ImageFetcher {
override fun loadImage(url: String, callback: (bitmap: Bitmap) -> Unit) {
val target = object : com.squareup.picasso.Target {
override fun onBitmapLoaded(bitmap: Bitmap, from: Picasso.LoadedFrom?) {
callback.invoke(bitmap)
}
override fun onPrepareLoad(placeHolderDrawable: Drawable?) {}
override fun onBitmapFailed(e: Exception?, errorDrawable: Drawable?) {}
}
Picasso.get().load(url).into(target)
}
Комментарии:
1. попробуйте добавить
.setLoggingEnabled(true)
после вашего вызова Picassoget()
(soPicasso.get().setLoggingEnabled(true).load(url).into(target)
) и посмотрите, какие сообщения об ошибках вы получаете в журналах2. Спасибо. После добавления раздела в мой код. созданный журнал не может найти метод android.content. Context.getDrawable, на который ссылается метод com.squareup.picasso.RequestCreator.getPlaceholderDrawable
3. Странно,
RequestCreator
класс вызывает этот метод только в API 21 , он используетContextCompat
который должен вызыватьcontext.getResources().getDrawable()
вместо этого. Я не знаю, что могло бы помочь, но если вы где-то используете векторный заполнитель для рисования, попробуйте вместо него растровый, на всякий случай, если это как-то связано с этим. И, возможно, попробуйте установить точку останова и выполнить пошаговое выполнение с помощью отладчика, посмотрим, сможете ли вы выяснить, почему он выполняет этотcontext.getDrawable()
вызов