SmartQuery /ВОПРОС → ПРИМЕР → ПОНЯТНЫЙ ОТВЕТ
Веб-разработка

Picasso в Kotlin: загрузка, размер и ошибка изображения

Picasso загружает изображение в Android ImageView и управляет загрузкой и кэшированием. Он не делает большие изображения бесплатными по памяти: размер декодирования всё равно нужно соотносить с размером элемента.

Подключение

Добавьте зависимость Picasso в модуль приложения, выбрав версию по официальной публикации и совместимости проекта. Не считайте номер версии из чужого примера признаком актуального релиза.

import com.squareup.picasso.Picasso

Picasso.get()
    .load(imageUrl)
    .placeholder(R.drawable.placeholder)
    .error(R.drawable.load_error)
    .resize(200, 200)
    .centerCrop()
    .into(imageView)

Размеры resize задаются в пикселях. centerCrop заполняет указанную область с обрезкой; если нужно показать изображение полностью, выберите соответствующую стратегию масштабирования. Для сетевого источника нужны разрешение INTERNET и доступный HTTPS-адрес.

Кэш и предзагрузка

Picasso использует кэш памяти и диска в своей конфигурации загрузки. setIndicatorsEnabled(true) только показывает отладочный индикатор источника; он не включает кэш. Вызов fetch запускает загрузку без вывода в ImageView и пригоден для предзагрузки.

Проверка экрана

  • Проверьте успех, недоступный URL и медленную сеть.
  • В списке убедитесь, что переиспользованный ImageView не оставляет чужую картинку.
  • Не загружайте оригинал огромного фото в маленькую аватарку без ограничения размера.
  • Используйте собственные или разрешённые изображения; URL из примера не даёт прав на публикацию.

Документация