Inhaltsverzeichnis
1. Einführung" >1. Einführung
Verwenden Sie die Bildressourcen der Hybrid-App" >Verwenden Sie die Bildressourcen der Hybrid-App
Netzwerkbilder laden" >Netzwerkbilder laden
Warum nicht in allen Fällen die Größe angeben?" >Warum nicht in allen Fällen die Größe angeben?
Hintergrundbilder durch Verschachtelung realisieren" >Hintergrundbilder durch Verschachtelung realisieren
Unterstützt Bilder im GIF- und WebP-Format auf Android " >Unterstützt Bilder im GIF- und WebP-Format auf Android
2. Attribute " >2. Attribute
3. Stil" >3. Stil
4. Beispiel" >4. Beispiel
Heim Web-Frontend js-Tutorial Einführung in die Bildsteuerung in React-native

Einführung in die Bildsteuerung in React-native

Jun 29, 2017 am 11:24 AM
image react-native 控件

1. Einführung

Eine React-Komponente, die zum Anzeigen vieler verschiedener Arten von Bildern verwendet wird, einschließlich Netzwerkbildern, statischen Ressourcen, temporären lokalen Bildern und Bildern auf lokale Festplatte (z. B. Fotoalbum) usw.
Ab Version 0.14 bietet React Native eine einheitliche Möglichkeit, Bilder in iOS- und Android-Anwendungen zu verwalten. Um Ihrer App ein statisches Bild hinzuzufügen, platzieren Sie die Bilddatei einfach irgendwo im Codeordner, z. B. img, und verweisen Sie dann wie folgt darauf:
<Image source={require(&#39;./img/check.png&#39;)} />
Wenn Sie my-icon.ios.png und my-icon.android.png haben, wählt Packager je nach Plattform unterschiedliche Dateien aus.
Sie können auch Dateinamensuffixe wie @2x und @3x verwenden, um Bilder für verschiedene Bildschirmauflösungen bereitzustellen. Beispielsweise die folgende Codestruktur:
------ button.js
------ img
------ |-------- check@2x.png
------ |-------- check@3x.p
Packager verpackt alle Bilder und stellt entsprechend der Bildschirmgenauigkeit entsprechende Ressourcen bereit. Beispielsweise verwendet das iPhone 5s check@2x.png, während das Nexus 5 check@3x.png verwendet. Wenn kein Bild vorhanden ist, das genau der Bildschirmauflösung entspricht, wird automatisch das nächstgelegene Bild ausgewählt.
【Hinweis】Wenn der Packager beim Hinzufügen von Bildern ausgeführt wird, müssen Sie den Packager möglicherweise neu starten, um die neu hinzugefügten Bilder korrekt einzuführen. Damit der neue Bildressourcenmechanismus ordnungsgemäß funktioniert, muss der Bildname in „require“ eine statische Zeichenfolge sein und darf nicht in „require“ gespleißt werden.
//Richtig
<Image source={require(&#39;./my-icon.png&#39;)} />
Falsch
var icon = this.props.active ? 'my-icon-active' : 'my-icon-inactive';
<Image source={require(&#39;./&#39; + icon + &#39;.png&#39;)} />

Verwenden Sie die Bildressourcen der Hybrid-App

Wenn Sie eine Hybrid-App schreiben (Teil von Die Benutzeroberfläche verwendet React Native, während der andere Teil den nativen Code der Plattform verwendet. Sie können auch Bildressourcen verwenden, die in die App gepackt wurden (gepackt über die Asset-Kategorie von Xcode oder den Zeichenordner von Android):
<Image source={{uri: &#39;app_icon&#39;}} style={{width: 40, height: 40}} />
Hinweis: Bei dieser Methode gibt es keine Sicherheitsüberprüfungen. Sie müssen selbst sicherstellen, dass das Bild tatsächlich in der Anwendung vorhanden ist, und auch die Größe angeben.

Netzwerkbilder laden

Anders als bei statischen Ressourcen müssen Sie die Größe des Bildes manuell angeben.
//Richtig
<Image source={{uri: &#39;https://facebook.github.io/react/img/logo_og.png&#39;}} style={{width: 400, height: 400}} />
//Falsch
<Image source={{uri: &#39;https://facebook.github.io/react/img/logo_og.png&#39;}} />

Warum nicht in allen Fällen die Größe angeben?

Wenn Sie im Browser die Größe des Bildes nicht angeben, rendert der Browser zunächst eine Größe von 0x0 Das Element nimmt den Platz ein, lädt dann das Bild herunter und rendert das Bild dann basierend auf der richtigen Größe, nachdem der Download abgeschlossen ist. Das größte Problem dabei ist, dass die Benutzeroberfläche während des Bildladevorgangs auf und ab springt, was das Benutzererlebnis sehr beeinträchtigt.
in React Dieses Verhalten wird in Native absichtlich vermieden. Dies wird von den Entwicklern mehr Arbeit erfordern, um die Größe (oder das Seitenverhältnis) des Remote-Bildes im Voraus zu kennen, aber wir glauben, dass dies zu einer besseren Benutzererfahrung führen kann. Beim Lesen von Bildern aus gepackten Anwendungsressourcendateien (mithilfe der require('image!x')-Syntax) ist es jedoch nicht erforderlich, die Größe anzugeben, da ihre Größe beim Laden sofort bekannt ist.
Das tatsächliche Ausgabeergebnis einer solchen Referenz require('image!logo') kann beispielsweise sein:
{"__packager_asset":true,"isStatic":true,"path":"/Users/react/HelloWorld/iOS/Images.xcassets/react.imageset/logo.png","uri":"logo","width":591,"height":573}

Hintergrundbilder durch Verschachtelung realisieren

Ähnlich wie beim Hintergrundbild (Hintergrundbild) im Web erstellen Sie einfach eine -Komponente und fügen dann die Unterkomponenten hinzu kann eingebettet werden
return (  <Image source={...}>    <Text>Inside</Text>  </Image> );

Unterstützt Bilder im GIF- und WebP-Format auf Android

Abhängigkeiten {
// Wenn Sie Versionen vor Android 4.0 (API-Level 14) unterstützen müssen
kompilieren Sie 'com.facebook.fresco:animated-base -support:0.11.0 '

// Wenn Sie GIF-Animationen unterstützen müssen
kompilieren Sie 'com.facebook.fresco:animated-gif:0.11 .0'

// Wenn Sie das WebP-Format unterstützen müssen, einschließlich WebP-Animationen
kompilieren Sie „com.facebook.fresco:animated-webp:0.11 .0“
kompilieren Sie 'com.facebook.fresco:webpsupport:0.11.0'

// Wenn Sie nur das WebP-Format ohne bewegte Bilder unterstützen müssen
kompiliere 'com.facebook.fresco:webpsupport:0.11.0'
}
Wenn Sie gleichzeitig GIF verwenden. Wenn Sie auch Wenn Sie ProGuard verwenden möchten, müssen Sie die folgenden Regeln zu proguard-rules.pro hinzufügen:
-keep class com.facebook.imagepipeline.animated.factory.AnimatedFactoryImpl {  public AnimatedFactoryImpl(com.facebook.imagepipeline.bitmaps.PlatformBitmapFactory, com.facebook.imagepipeline.core.ExecutorSupplier); }

2. Attribute

1.onLayout (Funktion) Wenn sich das Bildlayout ändert, wird diese Methode aufgerufen:
{nativeEvent: {layout: {x, y, width, height}}}.
2.onLoad (Funktion): Wenn das Bild erfolgreich geladen wurde, rufen Sie diese Methode zurück
3.onLoadEnd (Funktion): Diese Methode wird zurückgerufen, wenn das Bild nicht geladen werden kann, unabhängig davon, ob das Bild erfolgreich geladen wurde oder fehlgeschlagen ist
4.onLoadStart (Funktion ): Wenn das Bild geladen wird, wird diese Methode aufgerufen, wenn
5.resizeMode-Skalierung, optionale Parameter ('cover', 'contain', 'stretch') Wenn die Größe des Bildes die überschreitet Größe des Layouts, der Modus wird entsprechend eingestellt. Bild skalieren oder zuschneiden
Abdeckung: Skalieren Sie das Bild unter Beibehaltung des Seitenverhältnisses des Bildes, bis Breite und Höhe größer oder gleich sind die Größe der Containeransicht (wenn der Container eine Polsterung hat, dann entsprechend minus). Übersetzungsanmerkung: Auf diese Weise deckt das Bild den Container vollständig ab oder überragt ihn sogar, sodass kein Leerraum im Container verbleibt.
enthalten: Skalieren Sie das Bild unter Beibehaltung des Seitenverhältnisses des Bildes, bis die Breite und Höhe kleiner oder gleich der Größe der Containeransicht sind (wenn der Container über Auffüllung verfügt, entsprechend subtrahieren). Übersetzungshinweis: Auf diese Weise wird das Bild vollständig in den Container eingeschlossen, und es kann etwas Leerraum im Container vorhanden sein.
Strecken: Strecken Sie das Bild, ohne das Seitenverhältnis bis zur Breite und Höhe beizubehalten Füllen Sie einfach den Behälter.
Wiederholen: Wiederholen Sie die Kacheln, bis der Behälter gefüllt ist. Das Bild behält seine ursprüngliche Größe. Nur für iOS verfügbar.
Mitte: Zentriert ohne Dehnung.
6.source {uri:string} bezieht sich auf das markierte Bild. Dieser Parameter kann eine Netzwerk-URL-Adresse oder ein lokaler Pfad (verwenden Sie „require (relativer Pfad) zur Referenzierung“) sein

3. Stil

1.FlexBox unterstützt den flexiblen Boxstil
2.Transforms unterstützt Attributanimation 3.resizeMode-Einstellung Zoommodus
4.backgroundColor Hintergrundfarbe
5.borderColor Randfarbe 6.borderWidth Randbreite
7.borderRadius Rand abgerundete Ecken
8.overflow Wenn die Bildgröße den Container überschreitet, können Sie es so einstellen, dass es angezeigt oder ausgeblendet wird („sichtbar“, „versteckt“).
9.tintColor-Farbeinstellung 10 .Deckkrafteinstellung Transparenz 0,0 (transparent)-1,0 (völlig undurchsichtig)

4. Beispiel

Beispiel für das Laden von Internetbildern
class MyImageDemo extends Component {    render() {        return (            <View style={[styles.flex,{marginTop:45}]}>                <MyImage imgs={imgs}> </MyImage>            </View>        );    } }
class MyImage extends Component {    constructor(props) {        super(props);        this.state = {            count: 0,//图片索引            imgs: this.props.imgs,        };    }
render() {        return (            <View style={[styles.flex,{alignItems:&#39;center&#39;}]}>                <View style={styles.image}>                    <Image style={styles.img} resizeMode=&#39;contain&#39; source={{uri:this.state.imgs[this.state.count]}}/>                </View>                <View style={styles.btns}>                    <TouchableOpacity onPress={this.onPrevious.bind(this)}><View style={styles.btn}><Text>上一张</Text></View></TouchableOpacity>
<TouchableOpacity onPress={this.onNext.bind(this)}><View style={styles.btn}><Text>下一张</Text></View></TouchableOpacity>                </View> </View>        );    }
onPrevious() {        var count = this.state.count;        count--;        if (count >= 0) {            this.setState({                count: count,            });        }    }    onNext() {        var count = this.state.count;        count++;        if (count < this.state.imgs.length) {            this.setState({                count: count,            });        }    } }
const styles = StyleSheet.create({        flex: {            flex: 1,        },        image: {            width: 300,            height: 200,            borderWidth: 1,            justifyContent: 'center',            alignItems: 'center',            borderColor: '#ccc',            borderRadius: 5,        },        img: {            width: 200,            height: 150,        },        btn: {            width: 60,            height: 35,            borderWidth: 1,            borderColor: '#ccc',            borderRadius: 3,            justifyContent: 'center',            alignItems: 'center',            marginRight: 30,        },        btns: {            flexDirection: 'row',            marginTop: 20,            justifyContent: 'center'        }    } );

Effekt


Image_first.jpeg


Weiter klicken


Bild_jpeg


Weiter klicken


Image_third.jpeg

Aufzeichnen meines eigenen RN-Lernpfads, rein für meine eigene Wertschöpfung, wenn etwas nicht stimmt, besprechen Sie gemeinsam den Fortschritt

Das obige ist der detaillierte Inhalt vonEinführung in die Bildsteuerung in React-native. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So ändern Sie die Version von React Native So ändern Sie die Version von React Native Jan 19, 2023 pm 02:31 PM

So ändern Sie die Version von React Native: 1. Geben Sie das React Native-Projektverzeichnis ein und geben Sie „react-native --version“ in die Befehlszeile ein. 2. Überprüfen Sie die vom npm-Paket verwaltete React Native-Version .json“-Datei im Projekt, ändern Sie das Abhängigkeitsfeld und ändern Sie die „react-native“-Version in die Zielversion.

So nutzen Sie Bing Image Creator kostenlos So nutzen Sie Bing Image Creator kostenlos Feb 27, 2024 am 11:04 AM

In diesem Artikel werden sieben Möglichkeiten vorgestellt, mit dem kostenlosen BingImageCreator eine qualitativ hochwertige Ausgabe zu erhalten. BingImageCreator (jetzt bekannt als ImageCreator für Microsoft Designer) ist einer der großartigen Online-Kunstgeneratoren für künstliche Intelligenz. Es generiert äußerst realistische visuelle Effekte basierend auf Benutzereingaben. Je spezifischer, klarer und kreativer Ihre Aufforderungen sind, desto besser werden die Ergebnisse sein. BingImageCreator hat erhebliche Fortschritte bei der Erstellung hochwertiger Bilder gemacht. Es verwendet jetzt den Dall-E3-Trainingsmodus und zeigt ein höheres Maß an Detailgenauigkeit und Realismus. Allerdings hängt die Fähigkeit, konsistent HD-Ergebnisse zu liefern, von mehreren Faktoren ab, unter anderem von der Geschwindigkeit

So löschen Sie Bilder von Xiaomi-Telefonen So löschen Sie Bilder von Xiaomi-Telefonen Mar 02, 2024 pm 05:34 PM

Wie lösche ich Bilder auf Xiaomi-Handys? Sie können Bilder auf Xiaomi-Handys löschen, aber die meisten Benutzer wissen nicht, wie man Bilder auf Xiaomi-Handys löscht können Sie bei uns vorbeischauen. Mal sehen! So löschen Sie Bilder auf dem Xiaomi-Mobiltelefon 1. Öffnen Sie zunächst die Funktion [Album] im Xiaomi-Mobiltelefon. 2. Überprüfen Sie dann die nicht benötigten Bilder und klicken Sie auf die Schaltfläche [Löschen] in der unteren rechten Ecke Um den Spezialbereich aufzurufen, wählen Sie oben [Papierkorb] aus. 4. Klicken Sie dann direkt auf [Papierkorb leeren], wie in der Abbildung unten gezeigt. 5. Klicken Sie abschließend direkt auf [Permanent löschen].

Allgemeine Rich-Text-Editor-Steuerelemente im Go-Sprach-Webentwicklungs-Framework Allgemeine Rich-Text-Editor-Steuerelemente im Go-Sprach-Webentwicklungs-Framework Jun 04, 2023 am 09:10 AM

Mit der Popularität von Webanwendungen sind Rich-Text-Editoren zu einem unverzichtbaren Werkzeug in der Webentwicklung geworden. Wenn wir die Go-Sprache für die Webentwicklung verwenden, müssen wir auch ein geeignetes Rich-Text-Editor-Steuerelement auswählen, um unsere Websites und Anwendungen zu bereichern. In diesem Artikel besprechen wir gängige Rich-Text-Editor-Steuerelemente bei der Go-Sprach-Webentwicklung. FroalaEditorFroalaEditor ist ein beliebtes Rich-Text-Editor-Steuerelement, das in der Webentwicklung häufig verwendet wird. es hat Modernität

Imagemagic-Installation Centos und Image-Installations-Tutorial Imagemagic-Installation Centos und Image-Installations-Tutorial Feb 12, 2024 pm 05:27 PM

LINUX ist ein Open-Source-Betriebssystem und daher die erste Wahl für viele Entwickler und Systemadministratoren. Im LINUX-System ist die Bildverarbeitung eine sehr wichtige Aufgabe, und Imagemagick und Image sind zwei sehr beliebte Bildverarbeitungstools Der Artikel führt Sie in die Installation von Imagemagick und Image im Centos-System ein und bietet detaillierte Installationsanleitungen. Imagemagic-Installation Centos-Tutorial Imagemagick ist ein leistungsstarkes Bildverarbeitungs-Toolset, das verschiedene Bildoperationen unter der Befehlszeile ausführen kann. Im Folgenden sind die Schritte zur Installation von Imagemagick auf dem Centos-System aufgeführt: 1

So erstellen Sie Excel-Steuerelemente So erstellen Sie Excel-Steuerelemente Mar 20, 2024 am 09:40 AM

Wenn wir die Excel-Office-Software verwenden und einige Steuerelemente geschickt einsetzen, können wir dadurch professionellere Effekte im Excel-Formular erzielen. Durch das Hinzufügen von Auswahlsteuerelementen kann der Formularausfüller beispielsweise das Ausfüllen des Formulars erleichtern. Im Folgenden zeigen wir Ihnen, wie Sie eine Excel-Auswahlkontrolle durchführen. Wir hoffen, dass es Ihnen hilfreich sein wird! 1. Zuerst erstellen und öffnen wir eine leere Excel-Tabelle. 2. Fügen Sie die Registerkarte „Entwicklungstools“ hinzu, klicken Sie auf die Dateischaltfläche oben links und suchen Sie nach „Excel-Optionen“. Danach finden Sie die Entwicklungstools in den Optionen des benutzerdefinierten Menübands und markieren es mit einem Häkchen erscheint davor. 3. Kehren Sie zur Excel-Arbeitsoberfläche zurück und Sie können die Registerkarte „Entwicklungstools“ sehen. Im Allgemeinen ist dies nicht der Fall

So verwenden Sie die Bedienfeldsteuerung So verwenden Sie die Bedienfeldsteuerung Oct 10, 2023 am 09:36 AM

Die Schritte zur Verwendung des Panel-Steuerelements bestehen darin, zunächst ein Panel-Steuerelement zu erstellen und dessen Breite, Höhe, Hintergrundfarbe, Rahmenfarbe, Rahmenbreite und Abstand festzulegen, zwei Schaltflächen zu erstellen und diese dem Panel-Steuerelement hinzuzufügen und schließlich das Panel-Steuerelement hinzuzufügen das Formular.

Was sind die gängigen Ajax-Steuerelemente? Erfahren Sie mehr über seine Funktionen und Fähigkeiten Was sind die gängigen Ajax-Steuerelemente? Erfahren Sie mehr über seine Funktionen und Fähigkeiten Jan 17, 2024 am 11:11 AM

Vertiefendes Verständnis der Ajax-Steuerelemente: Welche sind die häufigsten? Einführung: In der modernen Webentwicklung ist Ajax (Asynchrones JavaScript und XML) zu einer beliebten Technologie geworden, mit der eine teilweise Aktualisierung von Webseiten realisiert und die Benutzererfahrung verbessert werden kann. In der Entwicklung verwenden wir normalerweise Ajax-Steuerelemente, um unseren Entwicklungsprozess zu vereinfachen und zu beschleunigen. In diesem Artikel werfen wir einen detaillierten Blick auf Ajax-Steuerelemente und stellen einige gängige Steuerelemente und ihre Funktionen vor. 1. jQueryAjax: jQueryA

See all articles