Quería agregar una imagen de pantalla completa a la Vista, así que escribo este código
return (
<View style={styles.container}>
<Image source={require('image!egg')} style={styles.backgroundImage}/>
</View>
)
y definió el estilo como
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
flexDirection: 'column',
},
backgroundImage:{
width:320,
height:480,
}
...
pero de esta manera, ¿cómo se supone que debo encontrar el tamaño real de la pantalla del iPhone?
He visto una API para acceder a la densidad de píxeles, pero nada sobre el tamaño de la pantalla ...
¿Alguna idea?
javascript
react-native
talpaz
fuente
fuente
.png
o.jpg
? ¿Está bien almacenar la imagen de fondo dentro del árbol de directorios de la aplicación? ¿O es mejor usar otra cosa?.svg
¿o algo?Respuestas:
Puede usar el
flex: 1
estilo en un<Image>
elemento para que ocupe toda la pantalla. Luego puede usar uno de los modos de cambio de tamaño de imagen para que la imagen llene completamente el elemento:Estilo:
Estoy bastante seguro de que puede deshacerse del
<View>
envoltorio de su imagen y esto funcionará.fuente
backgroundImage:{ justifyContent: 'center', alignItems: 'center', flex: 1, resizeMode: Image.resizeMode.contain, },
GraciasImage
componente en una posición absolutaView
para permitir que la imagen de fondo aparezca detrás de otro contenido en la pantalla.<Image src=...>
ahora<Image source=...>
(Esto ha quedado en desuso ahora puede usar ImageBackground )
Así es como lo hice. El acuerdo principal era deshacerse de los tamaños fijos estáticos.
fuente
Image
sea su primer componente devuelto, el contenedor. Al principio, accidentalmente anidé elImage
interior de unView
contenedor.Nota: esta solución es antigua. Consulte https://facebook.github.io/react-native/docs/images.html#background-image-via-nesting en su lugar
Prueba esta solución. Es oficialmente compatible. Lo acabo de probar y funciona perfectamente.
Y en cuanto a usarlo como imagen de fondo, simplemente haga lo siguiente.
fuente
alignSelf
ywidth
aquí?Intenté varias de estas respuestas en vano para Android usando react-native version = 0.19.0.
¿Por alguna razón, el resizeMode dentro de mi hoja de estilo no funcionó correctamente? Sin embargo, cuando sytlesheet tenía
y, dentro de la etiqueta de imagen, especifiqué el resizeMode:
¡Funcionó perfectamente! Como se mencionó anteriormente, puede usar Image.resizeMode.cover o contener también.
¡Espero que esto ayude!
fuente
Actualización de marzo de 2018 El uso de la imagen está en desuso uso ImageBackground
fuente
Basado en la respuesta de Braden Rockwell Napier , hice este componente
BackgroundImage
BackgroundImage.js
someWhereInMyApp.js
fuente
ACTUALIZAR a ImageBackground
Dado que el uso
<Image />
como contenedor está en desuso por un tiempo, todas las respuestas realmente pierden algo importante. Para un uso adecuado, elija<ImageBackground />
constyle
yimageStyle
prop. Aplicar todos los estilos relevantes de Imagen aimageStyle
.Por ejemplo:
https://github.com/facebook/react-native/blob/master/Libraries/Image/ImageBackground.js
fuente
Si desea utilizarlo como imagen de fondo, deberá utilizar el nuevo
<ImageBackground>
componente introducido a finales de junio de 2017 en v0.46. Es compatible con la anidación, pero<Image>
pronto no.Aquí está el resumen de confirmación :
fuente
Oh Dios Finalmente, encuentro una excelente manera para React-Native V 0.52-RC y native-base:
Su etiqueta de contenido debe ser algo como esto: // ======================================= =======================
Y su estilo esencial es: // ========================================== ====================
Funciona bien amigos ... diviértete
fuente
Desde 0.14 este método no funcionará, así que construí un componente estático que lo hará simple para ustedes. Simplemente puede pegar esto o hacer referencia a él como un componente.
Esto debería ser reutilizable y le permitirá agregar estilos y propiedades adicionales como si fuera un
<Image />
componente estándarsimplemente pegue esto y luego puede usarlo como una imagen y debe ajustarse al tamaño completo de la vista en la que se encuentra (por lo tanto, si es la vista superior, llenará su pantalla.
Haga clic aquí para obtener una imagen de vista previa
fuente
Lo último a partir del 17 de octubre (RN> = .46)
http://facebook.github.io/react-native/releases/0.49/docs/images.html#background-image-via-nesting
fuente
fuente
Para manejar este caso de uso, puede usar el
<ImageBackground>
componente, que tiene los mismos accesorios<Image>
y agregarle todos los elementos secundarios que desee superponer.Ejemplo:
Para más información: ImageBackground | Reaccionar nativo
fuente
Debe asegurarse de que su imagen tenga resizeMode = {Image.resizeMode.contain} o {Image.resizeMode.stretch} y establecer el ancho del estilo de imagen en nulo
fuente
El ancho y la altura con valor nulo no me funcionan, entonces pensé usar la posición superior, inferior, izquierda y derecha y funcionó. Ejemplo:
Y el JSX:
fuente
(RN> = .46)
o puedes usar ImageBackground
fuente
La forma más fácil de implementar el fondo:
fuente
Para mí esto funciona bien, usé ImageBackground para establecer la imagen de fondo:
fuente
en caso de que aún no lo haya resuelto, React Native v.0.42.0 tiene resizeMode
fuente
Puede probarlo en: https://sketch.expo.io/B1EAShDie (de: github.com/Dorian/sketch-reactive-native-apps )
Documentos: https://facebook.github.io/react-native/docs/images.html#background-image-via-nesting
fuente
También puede usar su imagen como contenedor:
fuente
He oído hablar de tener que usar BackgroundImage porque en el futuro se supone que no podrás anidar la etiqueta Image. Pero no pude obtener BackgroudImage para mostrar correctamente mi fondo. Lo que hice fue anidar mi imagen dentro de una etiqueta de vista y diseñar tanto la vista externa como la imagen. Las teclas estaban configurando el ancho como nulo, y configurando resizeMode como 'estirar'. Debajo está mi código:
fuente
Use
<ImageBackground>
como ya dijo antoine129 . El uso<Image>
con niños está en desuso ahora.fuente
Otra solución fácil:
fuente
Resolví mi problema de imagen de fondo usando este código.
fuente
ImageBackground podría tener límite
Si desea agregar una imagen de fondo en React Native y también desea agregar otros elementos en esa imagen de fondo, siga el siguiente paso:
Este es el código que uso:
Disfruta de la codificación ...
Salida:
fuente