Eu queria adicionar uma imagem em tela cheia ao modo de exibição, para escrever esse código
return (
<View style={styles.container}>
<Image source={require('image!egg')} style={styles.backgroundImage}/>
</View>
)
e definiu o estilo como
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
flexDirection: 'column',
},
backgroundImage:{
width:320,
height:480,
}
...
mas dessa maneira, como devo encontrar o tamanho real da tela do iPhone?
Eu vi uma API para acessar a densidade de pixels, mas nada sobre o tamanho da tela ...
Qualquer ideia?
javascript
react-native
talpaz
fonte
fonte
.png
ou.jpg
? Você pode armazenar a imagem do papel de parede na árvore de diretórios do aplicativo? Ou é melhor usar outra coisa?.svg
ou nada?Respostas:
Você pode usar o
flex: 1
estilo em um<Image>
elemento para que ele preencha a tela inteira. Você pode usar um dos modos de redimensionamento da imagem para que a imagem preencha completamente o elemento:Estilo:
Tenho certeza que você pode se livrar da
<View>
quebra de sua imagem e isso funcionará.fonte
backgroundImage:{ justifyContent: 'center', alignItems: 'center', flex: 1, resizeMode: Image.resizeMode.contain, },
GraçasImage
componente em uma posição absolutamente absolutaView
para permitir que a imagem de segundo plano aparecesse atrás de outro conteúdo na tela.<Image src=...>
agora é<Image source=...>
(Isso foi descontinuado agora você pode usar o ImageBackground )
Foi assim que eu fiz. O negócio principal era se livrar dos tamanhos fixos estáticos.
fonte
Image
é o seu primeiro componente retornado, o contêiner. No começo, aninhei acidentalmente o que estavaImage
dentroView
do contêiner.Nota: Esta solução é antiga. Por favor, consulte https://facebook.github.io/react-native/docs/images.html#background-image-via-nesting vez
Experimente esta solução. É oficialmente suportado. Acabei de testá-lo e funciona perfeitamente.
E quanto a usá-lo como imagem de fundo, faça o seguinte.
fonte
alignSelf
ewidth
aqui?Eu tentei várias dessas respostas sem sucesso para o Android usando a versão react-native = 0.19.0.
Por alguma razão, o resizeMode dentro da minha folha de estilo não funcionou adequadamente? No entanto, quando o sytleheet tinha
e, na tag Image, especifiquei o resizeMode:
Funcionou perfeitamente! Como mencionado acima, você pode usar Image.resizeMode.cover ou conter também.
Espero que isto ajude!
fonte
Atualizar março de 2018 Usar imagem está obsoleto, use ImageBackground
fonte
Baseado em Braden Rockwell Napier 's resposta , eu fiz este
BackgroundImage
componenteBackgroundImage.js
someWhereInMyApp.js
fonte
Se você quiser usá-lo como imagem de plano de fundo, precisará usar o novo
<ImageBackground>
componente introduzido no final de junho de 2017 na v0.46. Ele suporta o aninhamento enquanto em<Image>
breve não.Aqui está o resumo do commit :
fonte
ATUALIZAÇÃO para ImageBackground
Como o uso
<Image />
como contêiner está obsoleto por um tempo, todas as respostas perdem algo importante. Para uso adequado, escolha<ImageBackground />
comstyle
eimageStyle
suporte. Aplique todos os estilos relevantes à imagem emimageStyle
.Por exemplo:
https://github.com/facebook/react-native/blob/master/Libraries/Image/ImageBackground.js
fonte
Oh Deus Por fim, acho uma ótima maneira para o React-Native V 0.52-RC e o native-base:
Sua tag de conteúdo deve ser algo como: // ======================================= =======================
E o seu estilo essencial é: // ========================================== ====================
Funciona bem, amigos ... divirta-se
fonte
Desde 0.14, esse método não funciona, então eu criei um componente estático que simplificará isso para vocês. Você pode simplesmente colar isso ou fazer referência a ele como um componente.
Isso deve ser reutilizável e permitirá adicionar estilos e propriedades adicionais como se fosse um
<Image />
componente padrãobasta colar isso e então você pode usá-lo como imagem e deve caber em todo o tamanho da visualização em que está (por isso, se for a visualização superior, ela preencherá a tela.
Clique aqui para uma imagem de visualização
fonte
Mais recente a partir de 17 de outubro (RN> = 0,46)
http://facebook.github.io/react-native/releases/0.49/docs/images.html#background-image-via-nesting
fonte
Para lidar com esse caso de uso, você pode usar o
<ImageBackground>
componente, que tem os mesmos adereços que<Image>
, e adicionar quaisquer filhos a ele que gostaria de colocar em cima dele.Exemplo:
Para mais: ImageBackground | Reagir nativo
fonte
Você precisa garantir que sua imagem tenha resizeMode = {Image.resizeMode.contain} ou {Image.resizeMode.stretch} e defina a largura do estilo da imagem como nula
fonte
A largura e a altura com valor nulo não funcionam para mim, então pensei em usar a posição superior, inferior, esquerda e direita e funcionou. Exemplo:
E o JSX:
fonte
(RN> = 0,46)
ou você pode usar o ImageBackground
fonte
Maneira mais fácil de implementar o plano de fundo:
fonte
fonte
Para mim, isso funciona bem, usei o ImageBackground para definir a imagem de fundo:
fonte
caso você ainda não tenha resolvido, o React Native v.0.42.0 tem resizeMode
fonte
Você pode experimentá-lo em: 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
fonte
Você também pode usar sua imagem como um contêiner:
fonte
Ouvi dizer que é necessário usar o BackgroundImage porque, no futuro, você não poderá aninhar a tag Image. Mas não consegui que o BackgroudImage exibisse adequadamente meu plano de fundo. O que fiz foi aninhar minha imagem dentro de uma tag View e estilizar a vista externa e a imagem. As chaves estavam configurando a largura como nula e definindo resizeMode como 'esticar'. Abaixo está o meu código:
fonte
Use
<ImageBackground>
como já dito por antoine129 . O uso<Image>
com crianças está obsoleto agora.fonte
Outra solução fácil:
fonte
Resolvi meu problema de imagem de plano de fundo usando esse código.
fonte
ImageBackground pode ter limite
Se você deseja adicionar uma imagem de plano de fundo no React Native e também deseja adicionar outros elementos nessa imagem de plano de fundo, siga a etapa abaixo:
Este é o código que eu uso:
Desfrute de codificação ....
Resultado:
fonte