OSDN Git Service

Stretch short landscape bookmark screenshots to fill the correct amount of space.
authorBen Murdoch <benm@google.com>
Tue, 20 Oct 2009 17:30:28 +0000 (18:30 +0100)
committerBen Murdoch <benm@google.com>
Tue, 27 Oct 2009 12:26:28 +0000 (12:26 +0000)
Change-Id: Iea18faab7ef08ace675e19c1047d15a39f12ec97
(cherry picked from commit 85b59baf17a443e6d89aed50d77149513ceb526c)

src/com/android/browser/BrowserActivity.java

index 438b386..a167b09 100644 (file)
@@ -2300,11 +2300,30 @@ public class BrowserActivity extends Activity
         // May need to tweak these values to determine what is the
         // best scale factor
         int thumbnailWidth = thumbnail.getWidth();
+        int thumbnailHeight = thumbnail.getHeight();
+        float scaleFactorX = 1.0f;
+        float scaleFactorY = 1.0f;
         if (thumbnailWidth > 0) {
-            float scaleFactor = (float) getDesiredThumbnailWidth(this) /
+            scaleFactorX = (float) getDesiredThumbnailWidth(this) /
                     (float)thumbnailWidth;
-            canvas.scale(scaleFactor, scaleFactor);
+        } else {
+            return null;
         }
+
+        if (view.getWidth() > view.getHeight() &&
+                thumbnailHeight < view.getHeight() && thumbnailHeight > 0) {
+            // If the device is in landscape and the page is shorter
+            // than the height of the view, stretch the thumbnail to fill the
+            // space.
+            scaleFactorY = (float) getDesiredThumbnailHeight(this) /
+                    (float)thumbnailHeight;
+        } else {
+            // In the portrait case, this looks nice.
+            scaleFactorY = scaleFactorX;
+        }
+
+        canvas.scale(scaleFactorX, scaleFactorY);
+
         thumbnail.draw(canvas);
         return bm;
     }