Я хотел добавить полноэкранное изображение в представление, поэтому я пишу этот код
return (
<View style={styles.container}>
<Image source={require('image!egg')} style={styles.backgroundImage}/>
</View>
)
и определил стиль как
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
flexDirection: 'column',
},
backgroundImage:{
width:320,
height:480,
}
...
но таким образом, как я должен найти фактический размер экрана iPhone?
Я видел API для доступа к плотности пикселей, но ничего о размере экрана ...
Любая идея?
javascript
react-native
Talpaz
источник
источник
.png
или.jpg
? Можно ли хранить изображение обоев внутри дерева каталогов приложения? Или лучше использовать что-то еще?.svg
или что-нибудь?Ответы:
Вы можете использовать
flex: 1
стилизацию<Image>
элемента, чтобы он занимал весь экран. Затем вы можете использовать один из режимов изменения размера изображения, чтобы изображение полностью заполняло элемент:Стиль:
Я почти уверен, что вы можете избавиться от
<View>
упаковки вашего изображения, и это сработает.источник
backgroundImage:{ justifyContent: 'center', alignItems: 'center', flex: 1, resizeMode: Image.resizeMode.contain, },
СпасибоImage
компонент в абсолютно расположенное положение,View
чтобы фоновое изображение появлялось позади другого содержимого на экране.<Image src=...>
сейчас<Image source=...>
(Это устарело, теперь вы можете использовать ImageBackground )
Вот как я это сделал. Основной сделкой было избавление от статических фиксированных размеров.
источник
Image
ваш первый возвращенный компонент - контейнер. Сначала я случайно вложилImage
вView
контейнер контейнер.Примечание: это решение старое. Пожалуйста, обратитесь к https://facebook.github.io/react-native/docs/images.html#background-image-via-nesting вместо
Попробуйте это решение. Это официально поддерживается. Я только что проверил это и работает без нареканий.
А что касается использования его в качестве фонового изображения, просто сделайте следующее.
источник
alignSelf
иwidth
здесь?Я попробовал несколько из этих ответов безрезультатно для Android, используя реактивную версию = 0.19.0.
По какой-то причине resizeMode внутри моей таблицы стилей не работает должным образом? Тем не менее, когда sytlesheet имел
и в теге Image я указал resizeMode:
Работало отлично! Как упоминалось выше, вы можете использовать Image.resizeMode.cover или содержать также.
Надеюсь это поможет!
источник
Обновление за март 2018 Использование Image устарело использование ImageBackground
источник
На основе Брейден Rockwell Napier «S ответа , я сделал этот
BackgroundImage
компонентBackgroundImage.js
someWhereInMyApp.js
источник
ОБНОВЛЕНИЕ ImageBackground
Поскольку
<Image />
на некоторое время использование в качестве контейнера устарело, во всех ответах пропущено что-то важное. Для правильного использования выбрать<ImageBackground />
сstyle
иimageStyle
подпирать. Примените все соответствующие изображения стилиimageStyle
.Например:
https://github.com/facebook/react-native/blob/master/Libraries/Image/ImageBackground.js
источник
Если вы хотите использовать его в качестве фонового изображения, вам нужно будет использовать новый
<ImageBackground>
компонент, представленный в конце июня 2017 года в версии 0.46. Это поддерживает вложение, в то время как<Image>
скоро не будет.Вот сводка коммитов :
источник
О Боже, наконец, я нашел отличный способ для React-Native V 0.52-RC и native-base:
Ваш тег содержимого должен выглядеть примерно так: // ======================================= =======================
И Ваш основной стиль: // ========================================== ====================
Работает хорошо, друзья ... веселиться
источник
Начиная с версии 0.14 этот метод не будет работать, поэтому я создал статический компонент, который сделает это проще для вас, ребята. Вы можете просто вставить это или ссылаться на него как на компонент.
Это должно быть повторно использовано, и это позволит вам добавить дополнительные стили и свойства, как если бы это был стандартный
<Image />
компонентпросто вставьте его, и тогда вы сможете использовать его как изображение, и оно должно соответствовать всему размеру представления, в котором оно находится (поэтому, если это вид сверху, он заполнит ваш экран.
Нажмите здесь для предварительного просмотра изображения
источник
Последний по состоянию на октябрь 17 (RN> = .46)
http://facebook.github.io/react-native/releases/0.49/docs/images.html#background-image-via-nesting
источник
источник
Чтобы справиться с этим вариантом использования, вы можете использовать
<ImageBackground>
компонент, который имеет те же реквизиты, что и<Image>
, и добавить в него все дочерние вы хотели бы выложить поверх него.Пример:
Для большего: ImageBackground | React Native
источник
Вы должны убедиться, что ваше изображение имеет resizeMode = {Image.resizeMode.contain} или {Image.resizeMode.stretch} и установить ширину стиля изображения на ноль
источник
Ширина и высота со значением null у меня не работают, тогда я решил использовать верхнюю, нижнюю, левую и правую позиции, и это сработало. Пример:
И JSX:
источник
(RN> = .46)
или вы можете использовать ImageBackground
источник
Самый простой способ реализовать фон:
источник
Для меня это работает нормально, я использовал ImageBackground, чтобы установить фоновое изображение:
источник
если вы еще не решили, React Native v.0.42.0 имеют resizeMode
источник
Вы можете попробовать это по адресу: https://sketch.expo.io/B1EAShDie (от: github.com/Dorian/sketch-reactive-native-apps )
Документы: https://facebook.github.io/react-native/docs/images.html#background-image-via-nesting
источник
Вы также можете использовать свое изображение в качестве контейнера:
источник
Я слышал о необходимости использовать BackgroundImage, потому что в будущем вы, как предполагается, не сможете вкладывать тег Image. Но я не смог заставить BackgroudImage правильно отобразить свой фон. Что я сделал, так это вложил свое изображение в тег View и стилизовал как внешний вид, так и изображение. Ключи устанавливали ширину равной нулю, а resizeMode - растягиванию. Ниже мой код:
источник
Используйте,
<ImageBackground>
как уже сказал antoine129 . Использование<Image>
с детьми не рекомендуется.источник
Еще одно простое решение:
источник
Я решил проблему с фоновым изображением, используя этот код.
источник
Если вы хотите добавить фоновое изображение, вы можете сделать это, используя, но сначала вы должны импортировать это из'act-native 'следующим образом:
затем:
источник
ImageBackground может иметь ограничение
Если вы хотите добавить фоновое изображение в React Native, а также хотите добавить другие элементы в это фоновое изображение, выполните следующие действия:
Это код, который я использую:
Наслаждайтесь кодированием ....
Вывод:
источник