Lorsque j'utilise in react-native, cela indique que l'utilisation avec des enfants est obsolète et entraînera une erreur à l'avenir. Utilisateur à la place.
Donc, Si je l’utilise, le résultat escompté n’est pas celui escompté
Voici le code que j'ai écrit pour utiliser
<ImageBackground source={require('../../img/splash/splash_bg.png')} style={styles.backgroundImage} >
</ImageBackground>
Et le code de style est
const styles = StyleSheet.create({
backgroundImage: {
flex: 1,
// width: undefined,
// height: undefined,
// flexDirection: 'column',
// backgroundColor:'transparent',
// justifyContent: 'flex-start',
},}
Toute aide serait très appréciée . Merci
Maintenant RN ont "ImageBackground" composant.
<ImageBackground
source={yourSourceFile}
style={{width: '100%', height: '100%'}}
>
<....yourContent...>
</ImageBackground>
j'ai réalisé ceci en:
import { ImageBackground ] from 'react-native';
<ImageBackground style={ styles.imgBackground }
resizeMode='cover'
source={require('./Your/Path.png')}>
//place your now nested component JSX code here
</ImageBackground>
Et puis les styles:
imgBackground: {
width: '100%',
height: '100%',
flex: 1
},
Voici un lien vers la documentation RN: https://facebook.github.io/react-native/docs/images
Une demande de fonctionnalité commune à des développeurs familiarisés avec le Web est background-image. Pour gérer ce cas d'utilisation, vous pouvez utiliser le composant
<ImageBackground>
, qui a les mêmes propriétés que<Image>
, et ajouter les enfants que vous souhaitez y superposer.
Il se peut que vous ne souhaitiez pas utiliser <ImageBackground>
dans certains cas, car sa mise en œuvre est très simple. Reportez-vous au code source de <ImageBackground>
pour plus d'informations et créez votre propre composant personnalisé si nécessaire.
return (
<ImageBackground source={require('./image.png')} style={{width: '100%', height: '100%'}}>
<Text>Inside</Text>
</ImageBackground>
);
Notez que vous devez spécifier certains attributs de style width et height.
Notez également que le chemin du fichier est relatif au répertoire dans lequel se trouve le composant.
ImageBackground est un composant très simple et utile. Placez votre composant dans ImageBackground
en tant que composant imbriqué et ajustez une position de votre composant à l'aide de position
.
Voici un exemple.
<ImageBackground
source={{ uri: hoge }}
style={{
height: 100,
width: 100,
position: 'relative',
top: 0,
left: 0
}}
>
<Text
style={{
fontWeight: 'bold',
color: 'white',
position: 'absolute',
bottom: 0,
left: 0
}}
>
Hello World
</Text>
</ImageBackground>
Deux options:
Code pour # 2:
render(){
return(
<View style={{ flex: 1 }}>
<Image style={{ width: screenWidth, height: screenHeight, position: 'absolute', top: 0, left: 0 }}/>
<Text>Hey look, image background</Text>
</View>
)
}
Edit : Pour l'option 2, vous pouvez expérimenter avec resizeMode="stretch|cover"
Edit 2 : N'oubliez pas que l'option n ° 2 restitue l'image puis tout dans cet ordre, ce qui signifie que certains pixels sont restitués deux fois, ce qui pourrait avoir un impact très faible sur les performances (généralement inaperçu) mais juste pour votre information
<ImageBackground
source={require("../assests/background_image.jpg")}
style={styles.container}
>
<View
style={{
flex: 1,
justifyContent: "center",
alignItems: "center"
}}
>
<Button
onPress={() => this.props.showImagePickerComponent(this.props.navigation)}
title="START"
color="#841584"
accessibilityLabel="Increase Count"
/>
</View>
</ImageBackground>
Veuillez utiliser ce code pour définir l’image d’arrière-plan dans réagit natif
Pour ajouter une image d'arrière-plan, React Native est basé sur le composant, le composant ImageBackground requiert deux accessoires style = {{}} et source = {require ('')}
<ImageBackground source={require('./wallpaper.jpg')} style={{width: '100%', height: '100%'}}>
<....yourContent Goes here...>
</ImageBackground>
const { width, height } = Dimensions.get('window')
<View style={{marginBottom: 20}}>
<Image
style={{ height: 200, width: width, position: 'absolute', resizeMode: 'cover' }}
source={{ uri: 'https://picsum.photos/'+width+'/200/?random' }}
/>
<View style={styles.productBar}>
<View style={styles.productElement}>
<Image
style={{ height: 160, width: width - 250, position: 'relative', resizeMode: 'cover' }}
source={{ uri: 'https://picsum.photos/'+ 250 +'/160/?random' }}
/>
</View>
<View style={styles.productElement}>
<Text style={{ fontSize: 16, paddingLeft: 20 }}>Başlık</Text>
<Text style={{ fontSize: 12, paddingLeft: 20, color: "blue"}}>Alt Başlık</Text>
</View>
</View>
</View>
productBar: {
margin: 20,
marginBottom: 0,
justifyContent: "flex-start" ,
flexDirection: "row"
},
productElement: {
marginBottom: 0,
},
Je rencontrais le même problème avec l’image d’arrière-plan et ses composants enfants, y compris les images de logo… Après quelques heures perdues, j’ai trouvé la bonne façon de résoudre ce problème… .. Cela vous a sûrement aidé.
var {View, Text, Image, ImageBackground} = require('react-native');
import Images from '@assets';
export default class Welcome extends Component {
render() {
return (
<ImageBackground source={Images.main_bg} style={styles.container}>
<View style={styles.markWrap}>
<Image source={Images.main_logo}
style={styles.mark} resizeMode="contain" />
</View>
<View style={[styles.wrapper]}>
{//Here put your other components}
</View>
</ImageBackground>
);
}
}
var styles = StyleSheet.create({
container:{
flex: 1,
},
markWrap: {
flex: 1,
marginTop: 83,
borderWidth:1, borderColor: "green"
},
mark: {
width: null,
height: null,
flex: 1,
},
wrapper:{
borderWidth:1, borderColor: "green",///for debug
flex: 1,
position:"relative",
},
}
(PS: j'ai mis l'image fictive sur cet écran à la place du vrai logo de l'entreprise.)
Je pense que cela va vous aider ..
import React, { Component } from 'react';
import { homePageStyles } from '../styles/Style';
import { Text, ImageBackground } from 'react-native';
import HomePageWallpaper from '../images/homePageWallpaper.jpg';
export default class Home extends Component {
render() {
return (
<ImageBackground source={HomePageWallpaper} style={{ flex: 1, justifyContent: 'center', width: null, height: null }}>
<Container>
<Content>
<Text style={homePageStyles.description_text}>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</Text>
</Content>
</Container >
</ImageBackground>
);
}
}
.hero-image {
background-image: url("photographer.jpg"); /* The image used */
background-color: #cccccc; /* Used if the image is unavailable */
height: 500px; /* You must set a specified height */
background-position: center; /* Center the image */
background-repeat: no-repeat; /* Do not repeat the image */
background-size: cover; /* Resize the background image to cover the entire container */
}