Spec-Zone.ru › React Native

Изображение

Компонент React для отображения различных типов изображений, включая изображения из сети, статические ресурсы, временные локальные изображения и изображения с локального диска, такие как изображения из галереи.

В этом примере показано извлечение и отображение изображения из локального хранилища, а также изображения из сети и даже из данных, предоставленных в схеме URI 'data:'.

Обратите внимание, что для изображений из сети и данных вам необходимо вручную указать размеры изображения!

Примеры

  • Компонент функции
  • Компонент класса

Вы также можете добавить style к изображению:

  • Компонент функции
  • Компонент класса

Поддержка GIF и WebP на Android

При разработке собственного нативного кода GIF и WebP по умолчанию не поддерживаются на Android.

Вам потребуется добавить некоторые дополнительные модули в android/app/build.gradle, в зависимости от потребностей вашего приложения.

dependencies {
  // If your app supports Android versions before Ice Cream Sandwich (API level 14)
  implementation 'com.facebook.fresco:animated-base-support:1.3.0'

  // For animated GIF support
  implementation 'com.facebook.fresco:animated-gif:2.5.0'

  // For WebP support, including animated WebP
  implementation 'com.facebook.fresco:animated-webp:2.5.0'
  implementation 'com.facebook.fresco:webpsupport:2.5.0'

  // For WebP support, without animations
  implementation 'com.facebook.fresco:webpsupport:2.5.0'
}

Примечание: указанная выше версия может не обновляться вовремя. Пожалуйста, проверьте ReactAndroid/gradle.properties в главном репозитории, чтобы увидеть, какая версия Fresco используется в конкретной помеченной версии.

Справочник

Свойства

Свойства View

Наследует Свойства View.

accessible

Если true, указывает, что изображение является элементом доступности.

Тип Значение по умолчанию
bool false

accessibilityLabel

Текст, который читает средство чтения с экрана, когда пользователь взаимодействует с изображением.

Тип
строка

blurRadius

blurRadius: радиус размытия фильтра размытия, добавленного к изображению.

Тип
число

Совет: на IOS вам необходимо увеличить blurRadius более чем на 5.

capInsets
iOS

При изменении размера изображения углы размера, указанного в capInsets, останутся фиксированного размера, но центральное содержимое и границы изображения будут растянуты. Это полезно для создания масштабируемых кнопок с закругленными углами, теней и других масштабируемых ресурсов. Дополнительная информация в официальной документации Apple.

Тип
Прямоугольник

defaultSource

Статическое изображение для отображения во время загрузки источника изображения.

Тип
Источник изображения

Примечание: На Android свойство defaultSource игнорируется в сборках отладки.

fadeDuration
Android

Длительность анимации плавного перехода в миллисекундах.

Тип Значение по умолчанию
число 300

loadingIndicatorSource

Аналогично source, это свойство представляет собой ресурс, используемый для отображения индикатора загрузки изображения. Индикатор загрузки отображается до тех пор, пока изображение не будет готово к отображению, обычно после загрузки изображения.

Тип
Источник изображения (uri только), число

onError

Вызывается при ошибке загрузки.

Тип
({ nativeEvent: { error } }) => void

onLayout

Вызывается при монтаже и при изменениях макета.

Тип
({ nativeEvent: Событие макета }) => void

onLoad

Вызывается при успешном завершении загрузки.

Пример: onLoad={({nativeEvent: {source: {width, height}}}) => setImageRealSize({width, height})}

Тип
({ nativeEvent: Событие загрузки изображения }) => void

onLoadEnd

Вызывается при успешном или неудачном завершении загрузки.

Тип
() => void

onLoadStart

Вызывается при начале загрузки.

Пример: onLoadStart={() => this.setState({loading: true})}

Тип
() => void

onPartialLoad
iOS

Вызывается при завершении частичной загрузки изображения. Определение того, что считается «частичной загрузкой», зависит от загрузчика, хотя это предназначено для постепенной загрузки JPEG.

Тип
() => void

onProgress

Вызывается при прогрессе загрузки.

Тип
({ nativeEvent: { loaded, total } }) => void

progressiveRenderingEnabled
Android

При true, включает постепенную передачу JPEG - https://frescolib.org/docs/progressive-jpegs.

Тип Значение по умолчанию
bool false

resizeMethod
Android

Механизм, который должен использоваться для изменения размера изображения, когда размеры изображения отличаются от размеров представления изображения. По умолчанию auto.

  • auto: Используйте эвристику для выбора между resize и scale.

  • resize: Операция программного обеспечения, которая изменяет закодированное изображение в памяти перед его декодированием. Это следует использовать вместо scale когда изображение намного больше, чем представление.

  • scale: Изображение отображается с уменьшением или увеличением масштаба. По сравнению с resize, scale быстрее (обычно с аппаратным ускорением) и обеспечивает более качественное изображение. Это следует использовать, если изображение меньше, чем представление. Это также следует использовать, если изображение немного больше, чем представление.

Дополнительные сведения о resize и scale можно найти по адресу http://frescolib.org/docs/resizing.

Тип Значение по умолчанию
перечисление('auto', 'resize', 'scale') 'auto'

resizeMode

Определяет способ изменения размера изображения, когда фрейм не соответствует исходным размерам изображения. По умолчанию cover.

  • cover: Масштабировать изображение равномерно (сохранять соотношение сторон изображения), чтобы обе размерности (ширина и высота) изображения были равны или больше соответствующей размерности представления (за вычетом отступов).

  • contain: Масштабировать изображение равномерно (сохранять соотношение сторон изображения), чтобы обе размерности (ширина и высота) изображения были равны или меньше соответствующей размерности представления (за вычетом отступов).

  • stretch: Масштабировать ширину и высоту независимо, это может изменить соотношение сторон src.

  • repeat: Повторять изображение, чтобы заполнить фрейм представления. Изображение сохранит свой размер и соотношение сторон, если оно не больше представления, в противном случае оно будет равномерно уменьшено, чтобы уместиться в представлении.

  • center: Центрировать изображение в представлении по обеим размерностям. Если изображение больше представления, равномерно уменьшить его масштаб, чтобы оно поместилось в представление.

Тип Значение по умолчанию
перечисление('cover', 'contain', 'stretch', 'repeat', 'center') 'cover'

source

Источник изображения (путь к удаленному ресурсу или локальному файлу).

Это свойство также может содержать несколько удаленных путей, указанных вместе с их шириной и высотой и, возможно, с аргументами масштабирования/другими аргументами URI. Затем нативное приложение выберет наилучшее uri для отображения на основе измеренных размеров контейнера изображения. Свойство cache может быть добавлено для управления тем, как сетевые запросы взаимодействуют с локальным кэшем. (Дополнительную информацию см. в Управление кэшированием изображений).

В настоящее время поддерживаются форматы png, jpg, jpeg, bmp, gif, webp, psd (только iOS). Кроме того, iOS поддерживает несколько форматов RAW-изображений. Обратитесь к документации Apple за текущим списком поддерживаемых моделей камер (для iOS 12 см. https://support.apple.com/en-ca/HT208967).

Тип
Источник изображения

style

Тип
Свойства стиля изображения, Свойства макета, Свойства тени, Преобразования

testID

Уникальный идентификатор для этого элемента, используемый в скриптах тестирования автоматизации пользовательского интерфейса.

Тип
строка

Методы

abortPrefetch()
Android

Image.abortPrefetch(requestId);

Прервать запрос предварительной загрузки.

Параметры:

Имя Тип Описание
requestId
Обязательно
число Идентификатор запроса, возвращенный prefetch().

getSize()

Image.getSize(uri, success, [failure]);

Получение ширины и высоты (в пикселях) изображения перед его отображением. Этот метод может завершиться ошибкой, если изображение не найдено или не загружено.

Для получения размеров изображения оно может сначала потребовать загрузки или скачивания, после чего будет помещено в кэш. Это означает, что в принципе вы можете использовать этот метод для предварительной загрузки изображений, однако он не оптимизирован для этой цели и в будущем может быть реализован таким образом, что не полностью загрузит/скачает данные изображения. Правильный и поддерживаемый способ предварительной загрузки изображений будет предоставлен как отдельный API.

Параметры:

Имя
Тип Описание
uri
Обязательно
строка Расположение изображения.
success
Обязательно
функция Функция, которая будет вызвана, если изображение было успешно найдено, и ширина и высота получены.
failure функция Функция, которая будет вызвана, если произошла ошибка, например, при невозможности получения изображения.

getSizeWithHeaders()

Image.getSizeWithHeaders(uri, headers, success, [failure]);

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

Для получения размеров изображения оно может сначала потребовать загрузки или скачивания, после чего будет помещено в кэш. Это означает, что в принципе вы можете использовать этот метод для предварительной загрузки изображений, однако он не оптимизирован для этой цели и в будущем может быть реализован таким образом, что не полностью загрузит/скачает данные изображения. Правильный и поддерживаемый способ предварительной загрузки изображений будет предоставлен как отдельный API.

Параметры:

Имя
Тип Описание
uri
Обязательно
строка Расположение изображения.
headers
Обязательно
объект Заголовки для запроса.
success
Обязательно
функция Функция, которая будет вызвана, если изображение было успешно найдено, и ширина и высота получены.
failure функция Функция, которая будет вызвана, если произошла ошибка, например, при невозможности получения изображения.

prefetch()

await Image.prefetch(url);

Предварительно загружает удаленное изображение для последующего использования, загружая его в кэш на диске. Возвращает обещание, которое разрешается в булево значение.

Параметры:

Имя Тип Описание
url
Обязательно
строка Удаленное расположение изображения.
callback функция
Android
Функция, которая будет вызвана с requestId.

queryCache()

await Image.queryCache(urls);

Выполняет запросы к кэшу. Возвращает обещание, которое разрешается в отображение из URL в состояние кэша, такое как «диск», «память» или «диск/память». Если запрошенный URL отсутствует в отображении, это означает, что он отсутствует в кэше.

Параметры:

Имя Тип Описание
urls
Обязательно
массив Список URL изображений для проверки кэша.

resolveAssetSource()

Image.resolveAssetSource(source);

Преобразует ссылку на ресурс в объект, который имеет свойства uri, width, и height.

Параметры:

Имя
Тип Описание
source
Обязательно
ImageSource, число Число (непрозрачный тип, возвращаемый require('./foo.png')) или ImageSource.

Определения типов

ImageCacheEnum
iOS

Перечисление, которое можно использовать для установки обработки или стратегии кэширования для потенциально кэшированных ответов.

Тип По умолчанию
перечисление('default', 'reload', 'force-cache', 'only-if-cached') 'default'
  • default: Использование стратегии по умолчанию для родной платформы.
  • reload: Данные для URL будут загружены из исходного источника. Данные из кэша не должны использоваться для удовлетворения запроса на загрузку URL.
  • force-cache: Существующие кэшированные данные будут использованы для удовлетворения запроса, независимо от его возраста или срока действия. Если в кэше нет соответствующих данных, данные загружаются из исходного источника.
  • only-if-cached: Существующие кэшированные данные будут использованы для удовлетворения запроса, независимо от его возраста или срока действия. Если в кэше нет соответствующих данных, попытка загрузки данных из исходного источника не предпринимается, и загрузка считается неудачной.

ImageLoadEvent

Объект, возвращаемый в функции обратного вызова onLoad.

Тип
объект

Свойства:

Имя Тип Описание
source объект Объект источника

Объект источника

Свойства:

Имя Тип Описание
width число Ширина загруженного изображения.
height число Высота загруженного изображения.
uri строка Строка, представляющая идентификатор ресурса изображения.

ImageSource

Тип
объект, массив объектов, число

Свойства (если передается как объект или массив объектов):

Имя
Тип Описание
uri строка Строка, представляющая идентификатор ресурса изображения, который может быть адресом HTTP, локальным путем к файлу или именем статического ресурса изображения.
width число Может быть указано, если известно на этапе сборки, в этом случае значение будет использовано для установки размера компонента по умолчанию <Image/>.
height число Может быть указано, если известно на этапе сборки, в этом случае значение будет использовано для установки размера компонента по умолчанию <Image/>.
scale число Используется для указания коэффициента масштабирования изображения. По умолчанию 1.0, если не указано, что означает, что один пиксель изображения соответствует одному дисплейному пункту/DIP.
bundle
iOS
строка iOS набор ресурсов, в котором включено изображение. По умолчанию [NSBundle mainBundle], если не указано.
method строка HTTP-метод для использования. По умолчанию 'GET', если не указано.
headers объект Объект, представляющий HTTP-заголовки, которые нужно отправлять вместе с запросом на удаленное изображение.
body строка HTTP-тело для отправки с запросом. Это должна быть допустимая строка UTF-8, и она будет отправлена точно как указано, без применения дополнительных кодировок (например, URL-кодирования или base64).
cache
iOS
ImageCacheEnum Определяет, как запросы обрабатывают потенциально кэшированные ответы.

Если передается число:

  • number - непрозрачный тип, возвращаемый чем-то вроде require('./image.jpg').

© 2022 Facebook Inc.
Licensed under the Creative Commons Attribution 4.0 International Public License.
https://reactnative.dev/docs/image

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API