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 из примера не даёт прав на публикацию.