diff --git a/src/com/android/gallery3d/app/ActivityState.java b/src/com/android/gallery3d/app/ActivityState.java
index 11be8c6..8ca584a 100644
--- a/src/com/android/gallery3d/app/ActivityState.java
+++ b/src/com/android/gallery3d/app/ActivityState.java
@@ -46,6 +46,7 @@
     protected static final int FLAG_SCREEN_ON_ALWAYS = 8;
     protected static final int FLAG_ALLOW_LOCK_WHILE_SCREEN_ON = 16;
     protected static final int FLAG_SHOW_WHEN_LOCKED = 32;
+    protected static final int FLAG_SCREEN_FULL = 64;
 
     protected AbstractGalleryActivity mActivity;
     protected Bundle mData;
@@ -164,6 +165,12 @@
         } else {
             params.flags &= ~WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
         }
+
+        if (0 != (mFlags & FLAG_SCREEN_FULL)) {
+            params.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
+        } else {
+            params.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
+        }
         win.setAttributes(params);
     }
 
diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
index ac89a03..9f7a054 100644
--- a/src/com/android/gallery3d/app/PhotoPage.java
+++ b/src/com/android/gallery3d/app/PhotoPage.java
@@ -41,6 +41,7 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.Window;
+import android.view.WindowManager;
 import android.widget.RelativeLayout;
 import android.widget.ShareActionProvider;
 import android.widget.Toast;
@@ -1470,6 +1471,7 @@
         }
         mActivity.getGLRoot().unfreeze();
         mHandler.removeMessages(MSG_UNFREEZE_GLROOT);
+        showFullScreen(false);
 
         DetailsHelper.pause();
         // Hide the detail dialog on exit
@@ -1490,6 +1492,19 @@
         if (mMediaSet != null) mMediaSet.clearDeletion();
     }
 
+    private void showFullScreen(boolean show) {
+        Window win = mActivity.getWindow();
+        WindowManager.LayoutParams winParams = win.getAttributes();
+        if (show) {
+            //set full screen
+            winParams.flags |= (WindowManager.LayoutParams.FLAG_FULLSCREEN);
+        } else {
+            //cancel full screen
+            winParams.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
+        }
+        win.setAttributes(winParams);
+    }
+
     @Override
     public void onCurrentImageUpdated() {
         mActivity.getGLRoot().unfreeze();
@@ -1580,6 +1595,9 @@
             mActivity.getStateManager().finishState(this);
             return;
         }
+        //set full screen to hide the status bar
+        showFullScreen(true);
+
         transitionFromAlbumPageIfNeeded();
 
         mActivity.getGLRoot().freeze();
diff --git a/src/com/android/gallery3d/app/SlideshowPage.java b/src/com/android/gallery3d/app/SlideshowPage.java
index ca46ce3..ffc5dbf 100644
--- a/src/com/android/gallery3d/app/SlideshowPage.java
+++ b/src/com/android/gallery3d/app/SlideshowPage.java
@@ -113,7 +113,7 @@
     @Override
     public void onCreate(Bundle data, Bundle restoreState) {
         super.onCreate(data, restoreState);
-        mFlags |= (FLAG_HIDE_ACTION_BAR | FLAG_HIDE_STATUS_BAR);
+        mFlags |= (FLAG_HIDE_ACTION_BAR | FLAG_HIDE_STATUS_BAR | FLAG_SCREEN_FULL);
         if (data.getBoolean(KEY_DREAM)) {
             // Dream screensaver only keeps screen on for plugged devices.
             mFlags |= FLAG_SCREEN_ON_WHEN_PLUGGED | FLAG_SHOW_WHEN_LOCKED;
