2015-05-16 14 views
10

Arka plan görüntüsü kullanmak istiyorum, yerel uygulama uygulamasında görüntü ekrandan daha küçük, bu yüzden onu germek zorundayım.Statik görüntüyü arka planda Reaktif Yerleşik olarak nasıl uzatılır?

ama resim öğesi paket yüklenen ise çalışmıyor

var styles = StyleSheet.create({ 
    bgImage: { 
    flex: 1, 
    flexDirection: 'row', 
    justifyContent: 'center', 
    alignItems: 'stretch', 
    resizeMode: 'stretch', 
    }, 
    welcome: { 
    fontSize: 20, 
    textAlign: 'center', 
    margin: 10, 
    } 
}); 

<Image source={require('image!background')} style={styles.bgImage}> 
    <Text style={styles.welcome}> 
    Welcome to React Native! 
    </Text> 
</Image> 

o şuna benzer:

enter image description here

ancak uzak bir görüntü için çalışıyor source={{uri: 'background-image-uri'}} aracılığıyla:

enter image description here

+0

'resizeMode:' cover'' deneyin? bakın: [http://stackoverflow.com/questions/29322973/whats-the-best-way-to-add-a-full-screen-background-image-in-react-native](http://stackoverflow .com/questions/29322973/whats-the-best-way-to-add-a-tam ekran-arka plan-görüntü-in-tepki-yerli) – ddaaggeett

cevap

8

Görüntü etiketi genellikle kapsayıcı görünüm olarak değerlendirilmemelidir.

var styles = StyleSheet.create({ 
    bgImageWrapper: { 
     position: 'absolute', 
     top: 0, bottom: 0, left: 0, right: 0 
    }, 
    bgImage: { 
     flex: 1, 
     resizeMode: "stretch" 
    }, 
    welcome: { 
     fontSize: 20, 
     textAlign: 'center', 
     margin: 10 
    } 
}); 



<View style={{ flex: 1 }}> 
    <View style={styles.bgImageWrapper}> 
    <Image source={require('image!background')} style={styles.bgImage} /> 
    </View> 
    <Text style={styles.welcome}> 
    Welcome to React Native! 
    </Text> 
</View> 
+5

Ne yazık ki, benim için işe yaramıyor. Resmi belgenin [Nesting yoluyla Background Image] (https://facebook.github.io/react-native/docs/image.html#background-image-via) olduğunu belirtirken, 'Image' kapsayıcı olarak ele alınmamalıdır. -nesting)? – xinthink

2

Hep ekranın genişliğini almak için Dimensions modülü kullanmak ve resminizin genişliğini stilini ayarlayabilirsiniz: En (gerilmiş/alan) görüntüyü içeren kesinlikle konumlandırılmış sarıcı olması

iyi çalıştığı görülür bu değer:

var Dimensions = require('Dimensions'); 
var {width, height} = Dimensions.get('window'); 

Ayrıca uzak bir görüntü size uri synt ile yerel bir statik bir resim kadar yükleme deneyebilirsiniz ... çalışıyor garip görünüyor source={{uri: 'local_image_file_name' isStatic: true}} kullanarak balta.

+1

Teşekkürler @dave, bence [resmi belge] (https://facebook.github.io/react-native/docs/image.html#why-not-automatically-size-everything) bunu açıklıyor, 'require (' image! x ') ', sabit genişlik ve yüksekliğe sahip bir nesneye (resmin boyutu) neden olur:' {"__packager_asset": true, "isStatic": true, "yol": "...", "uri": "logosu", "genişlik": 591, "yükseklik": 573} '. 'Uri' formunu deneyeceğim ve sonucu size bildiririm, thx! Arka plan – xinthink

İlgili konular