Reagieren Nativen Android - Statische Ressourcen, die nicht Zeigen
Ich versuche nur, ein Bild zu laden, als eine statische Ressource. Hier ist ein Beispiel, das gibt mir ein leerer weißer Bildschirm.
/**
* Sample React Native App
* https://github.com/facebook/react-native
*/
'use strict';
var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
Image,
View
} = React;
var impowerz = React.createClass({
displayName : "Login",
render: function() {
return (
<View style={styles.container}>
<Image source={require('image!bg-splash')} style={styles.bg} />
</View>
);
}
});
var styles = StyleSheet.create({
bg : {
height: 667,
width: 375
},
container: {
flex: 1,
},
});
AppRegistry.registerComponent('impowerz', () => impowerz);
Überprüfte ich im Chrome-Debugger und das ist, was ich bekam
[![Chrome-Debugger sieht meine statische Ressource][1]][1]
Bearbeiten ich wickelte das image-tag in einer Ansicht und fügte hinzu, eine flex: 1 styles für die container
Update ich versuchte, Sie zu trösten.log() die assetsRoot Eigenschaft in react-native/packager/packager.js und es kam zurück als /impowerz/assets/das ist, wo mein Bild lebt. Ich machte ein @2x und @3x vorgeschlagen [bei dieser Antwort][2]
Versuchte ich mit .jpg statt .png-Bilder und versucht, anstelle require('Bild!bg_splash') mit {uri: 'assets/image/bg_splash.jpg'} (mit und ohne ext).
- Hast du eine Lösung gefunden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie Sie hinzufügte "bg-splash", um Ihre android-app? Es sollte gehen unter
android/app/src/main/res/drawable
(oderdrawable-hdpi
,-xhdp
etc, wenn Sie haben die andere version per DPI). Berücksichtigen Sie auch, dass android nur akzeptieren, Ressourcen-Namen, die Kleinbuchstaben enthalten und Unterstrichen, so dass Ihre Bild-name entspricht nicht dieser Anforderung, da es enthält Bindestrich-Zeichen.assetsRoot
Eigenschaft inreact-native/packager/packager.js
und es kam zurück als/impowerz/assets/
. Ich fand das Verzeichnis, das Sie erwähnt, und ich glaube nicht, dass das die richtigen sind. Es ist bereits eine Datei vorhanden, so versuchtrequire('image!ic_launcher')
und ich erhielt eineunknown module
Fehler. Auch habe ich bereits versucht, meine Bild-name mit einem Unterstrich und das hat auch nicht geholfen. Ich benutzte dies als Verweis stackoverflow.com/questions/29308937/.... Können Sie mir zeigen, wo finden Sie Ihre Antwort?drawable-hdpi
-xhdp
etc Ordner. Mach dir keine sorgen, was die packager sagte Sie derassetsRoot
ist. Ich habe ein Projekt, wo statische Bilder, die einfach gut funktionieren. Hier ist es in den docs: facebook.github.io/reagieren-native/docs/...in reagieren-native v. 0.14+
Full Image docs hier
Konnte ich nicht, meine Bilder zu zeigen, bis entweder.
Als ich ging, um
<yourapp>/android/app/src/main/res
waren es nurmipmap-<qualifier>
Ordner. Ich zuerst die Bilder in diesen Ordnern. Hat nicht funktioniert. Mein Leseverständnis müssen natürlich aktualisieren, da in der Anweisungen, es sagt ganz klar "drawable." Dann machte ich den Fehler zu denken, dass diese "mipmap" Ordner geändert werden muss, um "drawable" - Ordner (in dem Ort, der "mipmap"). Also wenn jemand das täte, backtrack, und fügen Sie stattdessen dendrawable-<qualifier>
Ordner in neben auf den "mipmap" ersetzt. Und dann stellen Sie sicher, dass zum kompilieren der app.Um das Bild zu zeigen, auf dem Bildschirm, setzen Sie das Bild in einer Ansicht:
Und fügen Sie diese Stile, um die Ansicht