Преглед изворни кода

Support loading images from local storage

closes #276
Guy Carmeli пре 8 година
родитељ
комит
49a1aed390

+ 21
- 1
android/app/src/main/java/com/reactnativenavigation/react/ImageLoader.java Прегледај датотеку

@@ -1,16 +1,36 @@
1 1
 package com.reactnativenavigation.react;
2 2
 
3
+import android.graphics.drawable.BitmapDrawable;
3 4
 import android.graphics.drawable.Drawable;
5
+import android.net.Uri;
4 6
 
5 7
 import com.reactnativenavigation.NavigationApplication;
6 8
 
7 9
 public class ImageLoader {
10
+    private static final String FILE_SCHEME = "file";
8 11
 
9 12
     public static Drawable loadImage(String iconSource) {
10 13
         if (NavigationApplication.instance.isDebug()) {
11 14
             return JsDevImageLoader.loadIcon(iconSource);
12 15
         } else {
13
-            return ResourceDrawableIdHelper.instance.getResourceDrawable(NavigationApplication.instance, iconSource);
16
+            Uri uri = Uri.parse(iconSource);
17
+            if (isLocalFile(uri)) {
18
+                return loadFile(uri);
19
+            } else {
20
+                return loadResource(iconSource);
21
+            }
14 22
         }
15 23
     }
24
+
25
+    private static boolean isLocalFile(Uri uri) {
26
+        return FILE_SCHEME.equals(uri.getScheme());
27
+    }
28
+
29
+    private static Drawable loadFile(Uri uri) {
30
+        return new BitmapDrawable(NavigationApplication.instance.getResources(), uri.getPath());
31
+    }
32
+
33
+    private static Drawable loadResource(String iconSource) {
34
+        return ResourceDrawableIdHelper.instance.getResourceDrawable(NavigationApplication.instance, iconSource);
35
+    }
16 36
 }