diff --git a/res/drawable-hdpi/preview_popup.9.png b/res/drawable-hdpi/preview_popup.9.png index 987f571fc1..6eeddb2ba7 100644 Binary files a/res/drawable-hdpi/preview_popup.9.png and b/res/drawable-hdpi/preview_popup.9.png differ diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java index 015f187df0..05fc20c443 100644 --- a/src/com/android/launcher2/CellLayout.java +++ b/src/com/android/launcher2/CellLayout.java @@ -444,6 +444,22 @@ public class CellLayout extends ViewGroup { return mCellHeight; } + int getLeftPadding() { + return mPortrait ? mShortAxisStartPadding : mLongAxisStartPadding; + } + + int getTopPadding() { + return mPortrait ? mLongAxisStartPadding : mShortAxisStartPadding; + } + + int getRightPadding() { + return mPortrait ? mShortAxisEndPadding : mLongAxisEndPadding; + } + + int getBottomPadding() { + return mPortrait ? mLongAxisEndPadding : mShortAxisEndPadding; + } + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // TODO: currently ignoring padding diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index e7a4a3c877..a2a3e9a9d2 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -40,6 +40,7 @@ import android.content.res.Resources; import android.database.ContentObserver; import android.graphics.Bitmap; import android.graphics.Rect; +import android.graphics.Matrix; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; @@ -1562,8 +1563,21 @@ public final class Launcher extends Activity Bitmap cache = source.getDrawingCache(); if (cache == null) return; - Bitmap bitmap = Bitmap.createScaledBitmap(cache, - (int) (cache.getWidth() / 2.5f), (int) (cache.getHeight() / 2.5f), true); + int width = cache.getWidth(); + int height = cache.getHeight(); + float sx = (int) (width / 2.5f) / (float) width; + float sy = (int) (height / 2.5f) / (float) height; + + Matrix m = new Matrix(); + m.setScale(sx, sy); + + CellLayout cell = ((CellLayout) source); + int x = cell.getLeftPadding(); + int y = cell.getTopPadding(); + width -= (x + cell.getRightPadding()); + height -= (y + cell.getBottomPadding()); + + Bitmap bitmap = Bitmap.createBitmap(cache, x, y, width, height, m, true); ImageView preview = new ImageView(this); preview.setImageBitmap(bitmap);