Загрузите образ с диска.
Используйте компонент 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() для загрузки Bitmap-файла. Для получения дополнительной информации об 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" )
Дополнительные ресурсы
{% verbatim %}Рекомендуем вам
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Ресурсы в Compose
- Доступность в Compose
- Графика в композиции