2017-01-30 6 views
2

Ich versuche, die Abmessungen des Bildes so einzustellen, dass die Breite immer die volle Breite der Karte (abzüglich des horizontalen Rands) und mit einer flexiblen Höhe, so dass es beliebig skalieren kann.Wie bekomme ich die Bildbreite, um die Karte zu füllen, und die Höhe, um flexibel zu sein?

Wie kann ich das tun? Es scheint, dass der Stil eine Höhe benötigt, er akzeptiert keine Null.

ich eine Menge von Kombinationen mit verschiedenen resizeModes, Höhen versucht habe, Breiten usw.

ist die Komponente:

enter image description here

Und hier ist mein aktueller Code:

renderImage(image) { 
    const { width, height } = Dimensions.get('window'); 

    if (image) { 
     return (
     <View style={styles.imageContainer}> 
      <Image 
      style={{ width, resizeMode: 'contain', height: 300 }} 
      source={{ uri: image }} 
      /> 
     </View> 
    ); 
    } 
    } 

Antwort

0

Ich hatte dasselbe Problem für Bilder aus dem Internet (wo keine genaue Breite & Höhe bekannt war) und erstellt react-native-web-image. Derzeit nicht für lokale Bilder, nur für Remote. Probieren Sie es aus, ich werde mich freuen, wenn es hilft.

+0

Ich kann das nicht tun, fürchte ich. Ich verwende einen Exponenten, der native Module nicht unterstützt. – bloppit

+0

In diesem Fall kann ich zwei-Schritt-Logik vorschlagen: Faust 'Image.getSize' (https://facebook.github.io/react-native/docs/image.html#getsize), um ursprüngliche Dimensionen abzurufen, dann können Sie Berechnen Sie alle benötigten Dimensionen, um sie richtig skalieren zu können. – vovkasm

0

Legen Sie die Breite auf die Bildschirmbreite und die Höhe auf undefined fest.

+0

Der Stil benötigt eine Höhe, er akzeptiert keine Null oder Unterlassung. Wenn ich dies tue, wird das Bild überhaupt nicht rendern. – bloppit

+0

Was ist der Stil von imageContainer? – yedidyak

+0

Nur das: 'marginHorizontal: 10, marginBottom: 5,' – bloppit

Verwandte Themen