Загрузка изображений

Загрузить изображение с диска

Используйте компонуемый элемент Image, чтобы показывать графику на экране. Чтобы загрузить изображение (например, в формате PNG, JPEG или WEBP) или векторный ресурс с диска, используйте API painterResource со ссылкой на изображение. Вам не нужно знать тип объекта. Просто используйте painterResource в модификаторах Image или paint.

DrawScope:

Image(
    painter = painterResource(id = R.drawable.dog),
    contentDescription = stringResource(id = R.string.dog_content_description)
)

Чтобы ваше приложение было доступным, добавьте contentDescription для визуальных элементов на экране. TalkBack озвучивает описание контента, поэтому убедитесь, что текст будет понятен при озвучивании и переводе. В приведенном выше примере для загрузки переведенного описания контента из файла strings.xml используется stringResource(). Если визуальный элемент на экране предназначен только для украшения, задайте для атрибута contentDescription значение null, чтобы программа чтения с экрана игнорировала его.

Если вам нужна более низкоуровневая функция ImageBitmap, вы можете использовать ImageBitmap.imageResource() для загрузки растрового изображения. Подробнее об ImageBitmap можно узнать в разделе ImageBitmap и ImageVector.

Поддержка объектов Drawable

painterResource поддерживает следующие типы объектов drawable:

Как загрузить изображение из интернета

Чтобы загрузить изображение из интернета, можно воспользоваться сторонними библиотеками. Библиотеки для загрузки изображений выполняют большую часть работы за вас. Они обрабатывают как кеширование (чтобы вы не скачивали изображение несколько раз), так и сетевую логику для загрузки изображения и его отображения на экране.

Например, чтобы загрузить изображение с помощью Coil из Instacart, добавьте библиотеку в файл gradle и используйте AsyncImage для загрузки изображения из URL:

AsyncImage(
    model = "https://example.com/image.jpg",
    contentDescription = "Translated description of what the image contains"
)

Библиотека для загрузки изображений на основе сопрограмм Kotlin (Instacart).

Быстрая и эффективная библиотека для загрузки изображений в Android, ориентированная на плавную прокрутку (Google).

Дополнительные ресурсы