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

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

Используйте composable-функцию 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 озвучивает описание контента, поэтому текст должен быть понятным при чтении вслух и переводе. В примере выше stringResource() используется для загрузки переведенного описания контента из файла strings.xml. Если визуальный элемент на экране используется только для декоративных целей, задайте для contentDescription значение null, чтобы программа чтения с экрана игнорировала его.

Если вам нужны функции более низкого уровня, относящиеся к ImageBitmap, вы можете использовать ImageBitmap.imageResource() для загрузки Bitmap. Дополнительную информацию об 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).

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