diff --git a/res/layout-xlarge-land/all_apps_tabbed.xml b/res/layout-xlarge-land/all_apps_tabbed.xml
index 3a07b95..fd9d9cb 100644
--- a/res/layout-xlarge-land/all_apps_tabbed.xml
+++ b/res/layout-xlarge-land/all_apps_tabbed.xml
@@ -15,8 +15,7 @@
 -->
 <com.android.launcher2.AllAppsTabbed
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"
-    android:paddingTop="?android:attr/actionBarSize">
+    xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">
     <LinearLayout
         android:orientation="vertical"
         android:layout_width="match_parent"
@@ -26,8 +25,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center_horizontal"
-            android:tabStripEnabled="false"
-            android:paddingBottom="10dp" />
+            android:tabStripEnabled="false" />
         <FrameLayout
             android:id="@android:id/tabcontent"
             android:layout_width="match_parent"
@@ -37,11 +35,13 @@
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 launcher:cellCountX="7"
-                launcher:cellCountY="4"
-                launcher:pageLayoutPaddingTop="10dp"
+                launcher:cellCountY="5"
+                launcher:pageLayoutWidthGap="36dp"
+                launcher:pageLayoutHeightGap="6dp"
+                launcher:pageLayoutPaddingTop="0dp"
                 launcher:pageLayoutPaddingBottom="15dp"
-                launcher:pageLayoutPaddingLeft="20dp"
-                launcher:pageLayoutPaddingRight="20dp">
+                launcher:pageLayoutPaddingLeft="40dp"
+                launcher:pageLayoutPaddingRight="40dp">
             </com.android.launcher2.AllAppsPagedView>
         </FrameLayout>
     </LinearLayout>
diff --git a/res/layout-xlarge-land/launcher.xml b/res/layout-xlarge-land/launcher.xml
index 65f29df..0ef946f 100644
--- a/res/layout-xlarge-land/launcher.xml
+++ b/res/layout-xlarge-land/launcher.xml
@@ -26,7 +26,7 @@
         layout="@layout/all_apps_tabbed"
         android:id="@+id/all_apps_view"
         android:layout_width="match_parent"
-        android:layout_height="550dip"
+        android:layout_height="600dip"
         android:layout_gravity="top"/>
 
     <!-- The workspace contains 5 screens of cells -->
diff --git a/res/layout-xlarge-port/all_apps_tabbed.xml b/res/layout-xlarge-port/all_apps_tabbed.xml
index 6675adc..d61c979 100644
--- a/res/layout-xlarge-port/all_apps_tabbed.xml
+++ b/res/layout-xlarge-port/all_apps_tabbed.xml
@@ -26,8 +26,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center_horizontal"
-            android:tabStripEnabled="false"
-            android:paddingBottom="10dp" />
+            android:tabStripEnabled="false" />
         <FrameLayout
             android:id="@android:id/tabcontent"
             android:layout_width="match_parent"
@@ -38,10 +37,12 @@
                 android:layout_height="match_parent"
                 launcher:cellCountX="5"
                 launcher:cellCountY="7"
-                launcher:pageLayoutPaddingTop="10dp"
+                launcher:pageLayoutWidthGap="36dp"
+                launcher:pageLayoutHeightGap="36dp"
+                launcher:pageLayoutPaddingTop="0dp"
                 launcher:pageLayoutPaddingBottom="10dp"
-                launcher:pageLayoutPaddingLeft="0dp"
-                launcher:pageLayoutPaddingRight="0dp">
+                launcher:pageLayoutPaddingLeft="20dp"
+                launcher:pageLayoutPaddingRight="20dp">
             </com.android.launcher2.AllAppsPagedView>
         </FrameLayout>
     </LinearLayout>
diff --git a/res/layout-xlarge-port/customization_drawer.xml b/res/layout-xlarge-port/customization_drawer.xml
index 20c207f..53d1f6f 100644
--- a/res/layout-xlarge-port/customization_drawer.xml
+++ b/res/layout-xlarge-port/customization_drawer.xml
@@ -24,5 +24,5 @@
     launcher:cellCountY="4"
     launcher:pageLayoutPaddingTop="15dp"
     launcher:pageLayoutPaddingBottom="25dp"
-    launcher:pageLayoutPaddingLeft="0dp"
-    launcher:pageLayoutPaddingRight="0dp" />
\ No newline at end of file
+    launcher:pageLayoutPaddingLeft="15dp"
+    launcher:pageLayoutPaddingRight="15dp" />
diff --git a/res/layout-xlarge-port/launcher.xml b/res/layout-xlarge-port/launcher.xml
index a418b36..df7abc1 100644
--- a/res/layout-xlarge-port/launcher.xml
+++ b/res/layout-xlarge-port/launcher.xml
@@ -26,7 +26,7 @@
         layout="@layout/all_apps_tabbed"
         android:id="@+id/all_apps_view"
         android:layout_width="match_parent"
-        android:layout_height="1000dip"
+        android:layout_height="1040dip"
         android:layout_gravity="top"/>
 
     <!-- The workspace contains 5 screens of cells -->
diff --git a/res/layout-xlarge/all_apps_paged_view_application.xml b/res/layout-xlarge/all_apps_paged_view_application.xml
index 8e53e06..f687739 100644
--- a/res/layout-xlarge/all_apps_paged_view_application.xml
+++ b/res/layout-xlarge/all_apps_paged_view_application.xml
@@ -22,6 +22,7 @@
     launcher:outlineColor="#FF8CD2FF"
     launcher:checkedBlurColor="#FFBBE83C"
     launcher:checkedOutlineColor="#FF8CD2FF"
+    launcher:scaledIconSize="64dp"
 
     android:id="@+id/application_icon"
     android:layout_width="match_parent"
@@ -30,7 +31,7 @@
     android:paddingTop="2dip"
 
     android:textColor="#FFFFFFFF"
-    android:textSize="14sp"
+    android:textSize="13sp"
     android:shadowColor="#FF000000"
     android:shadowDx="0.0"
     android:shadowDy="1.0"
diff --git a/res/values-xlarge/dimens.xml b/res/values-xlarge/dimens.xml
index 4662aad..ecc6f3a 100644
--- a/res/values-xlarge/dimens.xml
+++ b/res/values-xlarge/dimens.xml
@@ -23,7 +23,8 @@
     <dimen name="smallScreenExtraSpacing">0dip</dimen>
 
     <!-- vertical spacing between edge of screen and mini screen thumbnails -->
-    <dimen name="smallScreenVerticalMargin">60dip</dimen>
+    <dimen name="smallScreenVerticalMarginLandscape">30dip</dimen>
+    <dimen name="smallScreenVerticalMarginPortrait">60dip</dimen>
 
     <dimen name="toolbar_padding">10dip</dimen>
 
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 14a5e98..a0e2706 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -66,6 +66,8 @@
         <attr name="checkedBlurColor" format="color" />
         <!-- The checked outline color of the holographic outline -->
         <attr name="checkedOutlineColor" format="color" />
+        <!-- The scaled icon dimension -->
+        <attr name="scaledIconSize" format="dimension" />
     </declare-styleable>
 
     <!-- PagedViewWidgetIcon specific attributes. These attributes are used to
@@ -84,6 +86,9 @@
         <attr name="cellCountX" />
         <!-- The number of vertical cells in a page -->
         <attr name="cellCountY" />
+        <!-- A spacing override for the icons within a page -->
+        <attr name="pageLayoutWidthGap" format="dimension" />
+        <attr name="pageLayoutHeightGap" format="dimension" />
         <!-- The padding of the pages that are dynamically created per page -->
         <attr name="pageLayoutPaddingTop" format="dimension" />
         <attr name="pageLayoutPaddingBottom" format="dimension" />
diff --git a/src/com/android/launcher2/AllAppsPagedView.java b/src/com/android/launcher2/AllAppsPagedView.java
index 42101eb..5de53d8 100644
--- a/src/com/android/launcher2/AllAppsPagedView.java
+++ b/src/com/android/launcher2/AllAppsPagedView.java
@@ -358,6 +358,7 @@
             layout.setCellCount(mCellCountX, mCellCountY);
             layout.setPadding(mPageLayoutPaddingLeft, mPageLayoutPaddingTop,
                     mPageLayoutPaddingRight, mPageLayoutPaddingBottom);
+            layout.setGap(mPageLayoutWidthGap, mPageLayoutHeightGap);
             addView(layout);
         }
 
@@ -414,7 +415,7 @@
                 final int index = i - startIndex;
                 final ApplicationInfo info = mFilteredApps.get(i);
                 PagedViewIcon icon = (PagedViewIcon) layout.getChildAt(index);
-                icon.applyFromApplicationInfo(info, mPageViewIconCache);
+                icon.applyFromApplicationInfo(info, mPageViewIconCache, true);
 
                 PagedViewCellLayout.LayoutParams params =
                     (PagedViewCellLayout.LayoutParams) icon.getLayoutParams();
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java
index 6b7aa98..f832b62 100644
--- a/src/com/android/launcher2/CustomizePagedView.java
+++ b/src/com/android/launcher2/CustomizePagedView.java
@@ -722,7 +722,7 @@
             final ApplicationInfo info = mApps.get(i);
             PagedViewIcon icon = (PagedViewIcon) mInflater.inflate(
                     R.layout.all_apps_paged_view_application, layout, false);
-            icon.applyFromApplicationInfo(info, mPageViewIconCache);
+            icon.applyFromApplicationInfo(info, mPageViewIconCache, false);
             icon.setOnClickListener(this);
             icon.setOnLongClickListener(this);
 
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index 39a6af0..4ccc4ae 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -96,6 +96,8 @@
     protected int mPageLayoutPaddingBottom;
     protected int mPageLayoutPaddingLeft;
     protected int mPageLayoutPaddingRight;
+    protected int mPageLayoutWidthGap;
+    protected int mPageLayoutHeightGap;
     protected int mCellCountX;
     protected int mCellCountY;
 
@@ -184,6 +186,10 @@
                 R.styleable.PagedView_pageLayoutPaddingLeft, 10);
         mPageLayoutPaddingRight = a.getDimensionPixelSize(
                 R.styleable.PagedView_pageLayoutPaddingRight, 10);
+        mPageLayoutWidthGap = a.getDimensionPixelSize(
+                R.styleable.PagedView_pageLayoutWidthGap, -1);
+        mPageLayoutHeightGap = a.getDimensionPixelSize(
+                R.styleable.PagedView_pageLayoutHeightGap, -1);
         a.recycle();
 
         setHapticFeedbackEnabled(false);
diff --git a/src/com/android/launcher2/PagedViewCellLayout.java b/src/com/android/launcher2/PagedViewCellLayout.java
index b247a06..0a5a2ec 100644
--- a/src/com/android/launcher2/PagedViewCellLayout.java
+++ b/src/com/android/launcher2/PagedViewCellLayout.java
@@ -46,6 +46,8 @@
     private int mCellCountY;
     private int mCellWidth;
     private int mCellHeight;
+    private int mWidthGap;
+    private int mHeightGap;
     private static int sDefaultCellDimensions = 96;
 
     public PagedViewCellLayout(Context context) {
@@ -66,6 +68,7 @@
         mCellCountX = LauncherModel.getCellCountX();
         mCellCountY = LauncherModel.getCellCountY();
         mHolographicAlpha = 0.0f;
+        mWidthGap = mHeightGap = -1;
     }
 
     @Override
@@ -168,12 +171,17 @@
             paddingLeft += ((widthGap - minGap) * (mCellCountX - 1)) / 2;
         }
         */
-        widthGap = heightGap = minGap;
+        if (mWidthGap > -1 && mHeightGap > -1) {
+            widthGap = mWidthGap;
+            heightGap = mHeightGap;
+        } else {
+            widthGap = heightGap = minGap;
+        }
 
         int newWidth = mPaddingLeft + mPaddingRight + (mCellCountX * cellWidth) +
-            ((mCellCountX - 1) * minGap);
+            ((mCellCountX - 1) * widthGap);
         int newHeight = mPaddingTop + mPaddingBottom + (mCellCountY * cellHeight) +
-            ((mCellCountY - 1) * minGap);
+            ((mCellCountY - 1) * heightGap);
 
         final int count = getChildCount();
         for (int i = 0; i < count; i++) {
@@ -252,6 +260,11 @@
         requestLayout();
     }
 
+    public void setGap(int widthGap, int heightGap) {
+        mWidthGap = widthGap;
+        mHeightGap = heightGap;
+    }
+
     public void setCellDimensions(int width, int height) {
         mCellWidth = width;
         mCellHeight = height;
diff --git a/src/com/android/launcher2/PagedViewIcon.java b/src/com/android/launcher2/PagedViewIcon.java
index 0f7898b..010c573 100644
--- a/src/com/android/launcher2/PagedViewIcon.java
+++ b/src/com/android/launcher2/PagedViewIcon.java
@@ -54,6 +54,7 @@
 
     private Object mIconCacheKey;
     private PagedViewIconCache mIconCache;
+    private int mScaledIconSize;
 
     private int mAlpha;
     private int mHolographicAlpha;
@@ -82,6 +83,7 @@
         mHoloOutlineColor = a.getColor(R.styleable.PagedViewIcon_outlineColor, 0);
         mCheckedBlurColor = a.getColor(R.styleable.PagedViewIcon_checkedBlurColor, 0);
         mCheckedOutlineColor = a.getColor(R.styleable.PagedViewIcon_checkedOutlineColor, 0);
+        mScaledIconSize = a.getDimensionPixelSize(R.styleable.PagedViewIcon_scaledIconSize, 64);
         a.recycle();
 
         if (sHolographicOutlineHelper == null) {
@@ -93,13 +95,21 @@
         setBackgroundDrawable(null);
     }
 
-    public void applyFromApplicationInfo(ApplicationInfo info, PagedViewIconCache cache) {
+    public void applyFromApplicationInfo(ApplicationInfo info, PagedViewIconCache cache,
+            boolean scaleUp) {
         mIconCache = cache;
         mIconCacheKey = info;
         mHolographicOutline = mIconCache.getOutline(mIconCacheKey);
 
+        Bitmap icon;
+        if (scaleUp) {
+            icon = Bitmap.createScaledBitmap(info.iconBitmap, mScaledIconSize,
+                    mScaledIconSize, true);
+        } else {
+            icon = info.iconBitmap;
+        }
         setCompoundDrawablesWithIntrinsicBounds(null,
-                new FastBitmapDrawable(info.iconBitmap), null, null);
+                new FastBitmapDrawable(icon), null, null);
         setText(info.title);
         setTag(info);
     }
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index d123374..42a6f1b 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -715,7 +715,10 @@
         final int screenCount = getChildCount();
         float totalWidth = screenCount * scaledPageWidth + (screenCount - 1) * extraScaledSpacing;
 
-        float newY = getResources().getDimension(R.dimen.smallScreenVerticalMargin);
+        boolean isPortrait = getMeasuredHeight() > getMeasuredWidth();
+        float newY = (isPortrait ?
+                getResources().getDimension(R.dimen.smallScreenVerticalMarginPortrait) :
+                getResources().getDimension(R.dimen.smallScreenVerticalMarginLandscape));
         float finalAlpha = 1.0f;
         float extraShrinkFactor = 1.0f;
         if (shrinkPosition == ShrinkPosition.SHRINK_TO_BOTTOM_VISIBLE) {
