启用react native android来加载下载的图像

时间:2017-04-15 19:52:35

标签: react-native react-native-android

我有一个遗留的Android java应用程序,我正在集成反应原生。 Per Facebook's instructions,我有一个通用Activity,我在其中添加了以下代码:

    mReactRootView = new ReactRootView(this);
    mReactInstanceManager = ReactInstanceManager.builder()
            .setApplication(getApplication())
            .setBundleAssetName("index.android.bundle")
            .setJSMainModuleName("index.android")
            .addPackage(new MainReactPackage())
            .setUseDeveloperSupport(BuildConfig.DEBUG)
            .setInitialLifecycleState(LifecycleState.RESUMED)
            .build();
    mReactRootView.startReactApplication(mReactInstanceManager, "HelloWorld", null);
    setContentView(mReactRootView);

但是,在我的情况下,我已经下载了我的反应原生包并将其放在我的Android设备的缓存中,所以我通过添加以下调用修改了该示例:

.setJSBundleFile(mReactNativeLocalFile.getAbsolutePath())

这使我能够成功加载下载的软件包,但是没有任何图像加载。因此,加载图像的组件如:

<Image source={require('./img/background.jpg')} style={styles.backgroundImage} />

不要渲染实际图像。

我已确认所有图片都已成功提取并放置在与我的捆绑包相邻的名为assets的文件夹中。因此,我的文件夹结构如下所示:

com.myapp/cache/templates/MyApp/
  index.android.bundle
  assets/
    img/
      background.jpg

因此,任何人都可以告诉我,本地下载到android文件系统的反应本机模板包是否可以引用已经本地下载到android文件系统的图像?

1 个答案:

答案 0 :(得分:0)

Based on this change,正确的答案是本地磁盘上的文件夹结构如下所示:

com.myapp/cache/templates/MyApp/
  index.android.bundle
  drawable-mdpi/
    img_background.jpg