diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index db82286..d5c0ff8 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -323,11 +323,31 @@
         padding.bottom = profile.availableHeightPx - padding.top - sTempStableInsets.top
                 - Math.round(overviewHeight);
         padding.left = padding.right = (int) ((profile.availableWidthPx - overviewWidth) / 2);
+
+        // If the height ratio is larger than the width ratio, the screenshot will get cropped
+        // at the bottom when swiping up. In this case, increase the top/bottom padding to make it
+        // the same aspect ratio.
+        Rect pageRect = new Rect();
+        getPageRect(profile, context, pageRect, padding);
+        float widthRatio = (float) pageRect.width() / taskWidth;
+        float heightRatio = (float) pageRect.height() / taskHeight;
+        if (heightRatio > widthRatio) {
+            float additionalVerticalPadding = pageRect.height() - widthRatio * taskHeight;
+            additionalVerticalPadding = Math.round(additionalVerticalPadding);
+            padding.top += additionalVerticalPadding / 2;
+            padding.bottom += additionalVerticalPadding / 2;
+        }
+
         return padding;
     }
 
     public static void getPageRect(DeviceProfile grid, Context context, Rect outRect) {
         Rect targetPadding = getPadding(grid, context);
+        getPageRect(grid, context, outRect, targetPadding);
+    }
+
+    private static void getPageRect(DeviceProfile grid, Context context, Rect outRect,
+            Rect targetPadding) {
         Rect insets = grid.getInsets();
         outRect.set(
                 targetPadding.left + insets.left,
diff --git a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
index 87bb53b..6f8878c 100644
--- a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
@@ -175,7 +175,7 @@
 
             float bitmapHeight = Math.max(thumbnailHeight * thumbnailScale, 0);
             Shader shader = mBitmapShader;
-            if (bitmapHeight < getMeasuredHeight()) {
+            if (Math.round(bitmapHeight) < getMeasuredHeight()) {
                 int color = mPaint.getColor();
                 LinearGradient fade = new LinearGradient(
                         0, bitmapHeight - mFadeLength, 0, bitmapHeight,
@@ -184,7 +184,7 @@
             }
 
             float bitmapWidth = Math.max(thumbnailWidth * thumbnailScale, 0);
-            if (bitmapWidth < getMeasuredWidth()) {
+            if (Math.round(bitmapWidth) < getMeasuredWidth()) {
                 int color = mPaint.getColor();
                 LinearGradient fade = new LinearGradient(
                         bitmapWidth - mFadeLength, 0, bitmapWidth, 0,
