diff --git a/Sources/app/src/main/java/com/furwaz/roomview/BuildingView.java b/Sources/app/src/main/java/com/furwaz/roomview/BuildingView.java
index 63da2cb9e1df25664d1e707948eda2426b4da472..ba2e588a0c76a537c463c17ca92f7afd6e0c81c9 100644
--- a/Sources/app/src/main/java/com/furwaz/roomview/BuildingView.java
+++ b/Sources/app/src/main/java/com/furwaz/roomview/BuildingView.java
@@ -7,10 +7,16 @@ import android.os.Bundle;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 import Common.BuildingManager;
 import Popups.DirectionsPopup;
 import Popups.GotoPopup;
 import Structures.BuildingInfo;
+import Structures.PhotoInfo;
+import Structures.RoomInfo;
+import Structures.ZoneInfo;
 
 public class BuildingView extends AppCompatActivity {
     BuildingInfo building = null;
@@ -41,6 +47,18 @@ public class BuildingView extends AppCompatActivity {
         tile_directions.setOnClickListener(view -> {
             showDirectionsPopup();
         });
+
+        // pre-load all the building's photos (to make the app faster)
+        ExecutorService executor = Executors.newSingleThreadExecutor();
+        executor.execute(() -> {
+            for (RoomInfo room: building.getRooms()) {
+                for (ZoneInfo zone : room.getZones()) {
+                    for (PhotoInfo photo : zone.getPhotos()) {
+                        photo.getBitmap();
+                    }
+                }
+            }
+        });
     }
 
     protected void showGotoPopup() {
diff --git a/Sources/app/src/main/java/com/furwaz/roomview/ZoneView.java b/Sources/app/src/main/java/com/furwaz/roomview/ZoneView.java
index 79c3177a04df3485654cde426121dab41896ee55..afa9b9b40bb5fd5ff58db37c6ba24c603bcd5582 100644
--- a/Sources/app/src/main/java/com/furwaz/roomview/ZoneView.java
+++ b/Sources/app/src/main/java/com/furwaz/roomview/ZoneView.java
@@ -16,6 +16,9 @@ import android.widget.LinearLayout;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
 import Common.BuildingManager;
 import Common.Coord;
 import Popups.PhotoInfoPopup;
@@ -100,6 +103,16 @@ public class ZoneView extends AppCompatActivity {
             zone = null;
         }
 
+        // pre-load all the zones's photos (to make the app faster)
+        ExecutorService executor = Executors.newSingleThreadExecutor();
+        executor.execute(() -> {
+            for (ZoneInfo zone : room.getZones()) {
+                for (PhotoInfo photo : zone.getPhotos()) {
+                    photo.getBitmap();
+                }
+            }
+        });
+
         // set the left-right buttons
         ImageButton btn_l = findViewById(R.id.btn_turn_l);
         ImageButton btn_r = findViewById(R.id.btn_turn_r);