diff --git a/res/drawable-hdpi/toast_frame_holo.9.png b/res/drawable-hdpi/toast_frame_holo.9.png
new file mode 100644
index 0000000..f8f75db
--- /dev/null
+++ b/res/drawable-hdpi/toast_frame_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/toast_frame_holo.9.png b/res/drawable-mdpi/toast_frame_holo.9.png
new file mode 100644
index 0000000..f8f75db
--- /dev/null
+++ b/res/drawable-mdpi/toast_frame_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/toast_frame_holo.9.png b/res/drawable-xhdpi/toast_frame_holo.9.png
new file mode 100644
index 0000000..f8f75db
--- /dev/null
+++ b/res/drawable-xhdpi/toast_frame_holo.9.png
Binary files differ
diff --git a/res/layout-sw600dp/pano_capture.xml b/res/layout-sw600dp/pano_capture.xml
index 2f58b10..1b2900b 100644
--- a/res/layout-sw600dp/pano_capture.xml
+++ b/res/layout-sw600dp/pano_capture.xml
@@ -55,8 +55,9 @@
 
             <RelativeLayout
                     android:layout_gravity="center"
+                    android:layout_weight="1.67"
                     android:layout_width="match_parent"
-                    android:layout_height="@dimen/pano_mosaic_surface_height">
+                    android:layout_height="0dp">
                 <com.android.camera.panorama.MosaicRendererSurfaceView
                         android:id="@+id/pano_renderer"
                         android:layout_width="match_parent"
diff --git a/res/layout-sw600dp/preview_frame.xml b/res/layout-sw600dp/preview_frame.xml
index 896d394..1316f4a 100644
--- a/res/layout-sw600dp/preview_frame.xml
+++ b/res/layout-sw600dp/preview_frame.xml
@@ -31,6 +31,5 @@
                 android:visibility="gone"/>
         <include layout="@layout/focus_indicator"/>
         <include layout="@layout/priority_indicators"/>
-        <include layout="@layout/first_hint_toast"/>
     </com.android.camera.PreviewFrameLayout>
 </RelativeLayout>
diff --git a/res/layout-sw600dp/preview_frame_video.xml b/res/layout-sw600dp/preview_frame_video.xml
index aab1ee1..1108814 100644
--- a/res/layout-sw600dp/preview_frame_video.xml
+++ b/res/layout-sw600dp/preview_frame_video.xml
@@ -48,6 +48,5 @@
                 android:background="@drawable/bg_pressed"
                 android:visibility="gone"
                 android:onClick="onReviewPlayClicked" />
-        <include layout="@layout/first_hint_toast"/>
     </com.android.camera.PreviewFrameLayout>
 </RelativeLayout>
diff --git a/res/layout/first_hint_toast.xml b/res/layout/first_hint_toast.xml
deleted file mode 100644
index fb60d29..0000000
--- a/res/layout/first_hint_toast.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<com.android.camera.ui.RotateLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/first_use_hint"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_centerInParent="true"
-        android:visibility="gone">
-    <TextView android:id="@+id/toast_text"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:paddingLeft="10dp"
-            android:paddingRight="10dp"
-            android:paddingTop="5dp"
-            android:paddingBottom="5dp"
-            android:textAppearance="?android:textAppearanceMedium"
-            android:background="@color/on_viewfinder_label_background_color" />
-</com.android.camera.ui.RotateLayout>
-
diff --git a/res/layout/pano_capture.xml b/res/layout/pano_capture.xml
index d6430f4..49065fd 100644
--- a/res/layout/pano_capture.xml
+++ b/res/layout/pano_capture.xml
@@ -71,7 +71,8 @@
 
             <RelativeLayout
                     android:layout_gravity="center"
-                    android:layout_width="@dimen/pano_mosaic_surface_height"
+                    android:layout_weight="1.67"
+                    android:layout_width="0dp"
                     android:layout_height="match_parent">
                 <com.android.camera.panorama.MosaicRendererSurfaceView
                         android:id="@+id/pano_renderer"
diff --git a/res/layout/pano_review.xml b/res/layout/pano_review.xml
index fa4f83b..7b9a92e 100644
--- a/res/layout/pano_review.xml
+++ b/res/layout/pano_review.xml
@@ -50,11 +50,15 @@
         </com.android.camera.ui.RotateLayout>
     </RelativeLayout>
 
-    <ImageView android:id="@+id/pano_reviewarea"
-            android:rotation="90"
-            android:scaleType="fitCenter"
-            android:layout_height="match_parent"
-            android:layout_width="@dimen/pano_mosaic_surface_height" />
+    <com.android.camera.ui.RotateLayout
+            android:id="@+id/pano_rotate_reviewarea"
+            android:layout_width="@dimen/pano_mosaic_surface_height"
+            android:layout_height="match_parent">
+        <ImageView android:id="@+id/pano_reviewarea"
+                android:scaleType="fitCenter"
+                android:layout_height="match_parent"
+                android:layout_width="match_parent" />
+    </com.android.camera.ui.RotateLayout>
 
     <LinearLayout android:id="@+id/pano_review_control"
             style="@style/PanoViewHorizontalBar"
diff --git a/res/layout/preview_frame.xml b/res/layout/preview_frame.xml
index 31ba61b..bed1fb0 100644
--- a/res/layout/preview_frame.xml
+++ b/res/layout/preview_frame.xml
@@ -32,7 +32,6 @@
                 android:visibility="gone"/>
         <include layout="@layout/focus_indicator"/>
         <include layout="@layout/priority_indicators"/>
-        <include layout="@layout/first_hint_toast"/>
     </com.android.camera.PreviewFrameLayout>
     <include layout="@layout/indicator_bar" />
 </RelativeLayout>
diff --git a/res/layout/preview_frame_video.xml b/res/layout/preview_frame_video.xml
index 43d1b5a..dd3ffc9 100644
--- a/res/layout/preview_frame_video.xml
+++ b/res/layout/preview_frame_video.xml
@@ -48,7 +48,6 @@
                 android:src="@drawable/ic_gallery_play"
                 android:visibility="gone"
                 android:onClick="onReviewPlayClicked"/>
-        <include layout="@layout/first_hint_toast"/>
     </com.android.camera.PreviewFrameLayout>
 
     <!-- Fill up the space below preview frame with black. -->
diff --git a/res/layout/rotate_text_toast.xml b/res/layout/rotate_text_toast.xml
new file mode 100644
index 0000000..2c89b6f
--- /dev/null
+++ b/res/layout/rotate_text_toast.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<com.android.camera.ui.RotateLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/rotate_toast"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center"
+    android:visibility="gone">
+
+    <FrameLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@drawable/toast_frame_holo">
+        <TextView
+            android:id="@+id/message"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:textAppearanceMedium"
+            android:textColor="@android:color/white"
+            android:shadowColor="#BB000000"
+            android:shadowRadius="2.75" />
+    </FrameLayout>
+</com.android.camera.ui.RotateLayout>
+
+
diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java
index c3f5d95..bb0c0e0 100644
--- a/src/com/android/camera/Camera.java
+++ b/src/com/android/camera/Camera.java
@@ -22,6 +22,7 @@
 import com.android.camera.ui.Rotatable;
 import com.android.camera.ui.RotateImageView;
 import com.android.camera.ui.RotateLayout;
+import com.android.camera.ui.RotateTextToast;
 import com.android.camera.ui.SharePopup;
 import com.android.camera.ui.ZoomControl;
 
@@ -95,8 +96,7 @@
     private static final int SET_CAMERA_PARAMETERS_WHEN_IDLE = 4;
     private static final int CHECK_DISPLAY_ROTATION = 5;
     private static final int SHOW_TAP_TO_FOCUS_TOAST = 6;
-    private static final int DISMISS_TAP_TO_FOCUS_TOAST = 7;
-    private static final int UPDATE_THUMBNAIL = 8;
+    private static final int UPDATE_THUMBNAIL = 7;
 
     // The subset of parameters we need to update in setCameraParameters().
     private static final int UPDATE_PARAM_INITIALIZE = 1;
@@ -310,14 +310,6 @@
                     break;
                 }
 
-                case DISMISS_TAP_TO_FOCUS_TOAST: {
-                    View v = findViewById(R.id.first_use_hint);
-                    v.setVisibility(View.GONE);
-                    v.setAnimation(AnimationUtils.loadAnimation(Camera.this,
-                            R.anim.on_screen_hint_exit));
-                    break;
-                }
-
                 case UPDATE_THUMBNAIL: {
                     mImageSaver.updateThumbnail();
                     break;
@@ -2275,15 +2267,7 @@
     }
 
     private void showTapToFocusToast() {
-        // Set the text of toast
-        TextView textView = (TextView) findViewById(R.id.toast_text);
-        textView.setText(R.string.tap_to_focus);
-        // Show the toast.
-        RotateLayout v = (RotateLayout) findViewById(R.id.first_use_hint);
-        v.setOrientation(mOrientationCompensation);
-        v.startAnimation(AnimationUtils.loadAnimation(this, R.anim.on_screen_hint_enter));
-        v.setVisibility(View.VISIBLE);
-        mHandler.sendEmptyMessageDelayed(DISMISS_TAP_TO_FOCUS_TOAST, 5000);
+        new RotateTextToast(this, R.string.tap_to_focus, mOrientation).show();
         // Clear the preference.
         Editor editor = mPreferences.edit();
         editor.putBoolean(CameraSettings.KEY_CAMERA_FIRST_USE_HINT_SHOWN, false);
diff --git a/src/com/android/camera/VideoCamera.java b/src/com/android/camera/VideoCamera.java
index fad9094..f725f43 100755
--- a/src/com/android/camera/VideoCamera.java
+++ b/src/com/android/camera/VideoCamera.java
@@ -22,6 +22,7 @@
 import com.android.camera.ui.Rotatable;
 import com.android.camera.ui.RotateImageView;
 import com.android.camera.ui.RotateLayout;
+import com.android.camera.ui.RotateTextToast;
 import com.android.camera.ui.SharePopup;
 import com.android.camera.ui.ZoomControl;
 
@@ -98,7 +99,6 @@
     private static final int UPDATE_RECORD_TIME = 5;
     private static final int ENABLE_SHUTTER_BUTTON = 6;
     private static final int SHOW_TAP_TO_SNAPSHOT_TOAST = 7;
-    private static final int DISMISS_TAP_TO_SNAPSHOT_TOAST = 8;
 
     private static final int SCREEN_DELAY = 2 * 60 * 1000;
 
@@ -308,14 +308,6 @@
                     break;
                 }
 
-                case DISMISS_TAP_TO_SNAPSHOT_TOAST: {
-                    View v = findViewById(R.id.first_use_hint);
-                    v.setVisibility(View.GONE);
-                    v.setAnimation(AnimationUtils.loadAnimation(VideoCamera.this,
-                            R.anim.on_screen_hint_exit));
-                    break;
-                }
-
                 default:
                     Log.v(TAG, "Unhandled message: " + msg.what);
                     break;
@@ -2344,8 +2336,8 @@
     @Override
     public boolean onTouch(View v, MotionEvent e) {
         if (mMediaRecorderRecording && effectsActive()) {
-            Toast.makeText(this, getResources().getString(
-                    R.string.disable_video_snapshot_hint), Toast.LENGTH_LONG).show();
+            new RotateTextToast(this, R.string.disable_video_snapshot_hint,
+                    mOrientation).show();
             return false;
         }
 
@@ -2444,15 +2436,8 @@
     }
 
     private void showTapToSnapshotToast() {
-        // Set the text of toast
-        TextView textView = (TextView) findViewById(R.id.toast_text);
-        textView.setText(R.string.video_snapshot_hint);
-        // Show the toast.
-        RotateLayout v = (RotateLayout) findViewById(R.id.first_use_hint);
-        v.setOrientation(mOrientationCompensation);
-        v.startAnimation(AnimationUtils.loadAnimation(this, R.anim.on_screen_hint_enter));
-        v.setVisibility(View.VISIBLE);
-        mHandler.sendEmptyMessageDelayed(DISMISS_TAP_TO_SNAPSHOT_TOAST, 5000);
+        new RotateTextToast(this, R.string.video_snapshot_hint, mOrientation)
+                .show();
         // Clear the preference.
         Editor editor = mPreferences.edit();
         editor.putBoolean(CameraSettings.KEY_VIDEO_FIRST_USE_HINT_SHOWN, false);
diff --git a/src/com/android/camera/panorama/PanoramaActivity.java b/src/com/android/camera/panorama/PanoramaActivity.java
index a65d263..fe70827 100755
--- a/src/com/android/camera/panorama/PanoramaActivity.java
+++ b/src/com/android/camera/panorama/PanoramaActivity.java
@@ -710,6 +710,7 @@
                     (Rotatable) findViewById(R.id.pano_review_saving_indication_layout),
                     (Rotatable) findViewById(R.id.pano_saving_progress_bar_layout),
                     (Rotatable) findViewById(R.id.pano_review_cancel_button_layout),
+                    (Rotatable) findViewById(R.id.pano_rotate_reviewarea),
                     (Rotatable) mRotateDialog,
                     (Rotatable) mCaptureIndicator,
                     (Rotatable) mModePicker,
diff --git a/src/com/android/camera/ui/RotateTextToast.java b/src/com/android/camera/ui/RotateTextToast.java
new file mode 100644
index 0000000..8ff381a
--- /dev/null
+++ b/src/com/android/camera/ui/RotateTextToast.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.camera.ui;
+
+import com.android.camera.R;
+import com.android.camera.Util;
+
+import android.app.Activity;
+import android.os.Handler;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+public class RotateTextToast {
+    private static final int TOAST_DURATION = 5000; // milliseconds
+    ViewGroup mLayoutRoot;
+    RotateLayout mToast;
+    Handler mHandler;
+
+    public RotateTextToast(Activity activity, int textResourceId, int orientation) {
+        mLayoutRoot = (ViewGroup) activity.getWindow().getDecorView();
+        LayoutInflater inflater = activity.getLayoutInflater();
+        View v = inflater.inflate(R.layout.rotate_text_toast, mLayoutRoot);
+        mToast = (RotateLayout) v.findViewById(R.id.rotate_toast);
+        TextView tv = (TextView) mToast.findViewById(R.id.message);
+        tv.setText(textResourceId);
+        mToast.setOrientation(orientation);
+        mHandler = new Handler();
+    }
+
+    private final Runnable mRunnable = new Runnable() {
+        public void run() {
+            Util.fadeOut(mToast);
+            mLayoutRoot.removeView(mToast);
+            mToast = null;
+        }
+    };
+
+    public void show() {
+        mToast.setVisibility(View.VISIBLE);
+        mHandler.postDelayed(mRunnable, TOAST_DURATION);
+    }
+}
