Загрузить изображение с диска
Используйте компонуемый объект 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()
для загрузки растрового изображения. Подробнее об объектах ImageBitmap см. в разделе «Сравнение ImageBitmap и ImageVector» .
Выдвижная поддержка
В настоящее время painterResource
поддерживает следующие типы рисунков:
-
AnimatedVectorDrawable
-
BitmapDrawable
(PNG, JPG, WEBP) -
ColorDrawable
-
VectorDrawable
Загрузить изображение из интернета
Для загрузки изображения из интернета существует несколько сторонних библиотек, которые помогут вам справиться с этим процессом. Библиотеки загрузки изображений берут на себя большую часть работы: они отвечают за кэширование (чтобы вам не приходилось загружать изображение несколько раз) и сетевую логику для загрузки изображения и его отображения на экране.
Например, чтобы загрузить изображение с помощью Coil из Instacart, добавьте библиотеку в свой файл Gradle и используйте AsyncImage
для загрузки изображения с URL-адреса:
AsyncImage( model = "https://example.com/image.jpg", contentDescription = "Translated description of what the image contains" )
Дополнительные ресурсы
{% дословно %}Рекомендовано для вас
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Ресурсы в Compose
- Доступность в Compose
- Графика в Compose