Загрузить изображение с диска
Используйте Image
composable для отображения графики на экране. Чтобы загрузить изображение (например: 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. Для получения дополнительной информации об ImageBitmaps прочтите раздел 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