From 5bb3102e71bb3b9954bc710b0e81f5a60f7b5784 Mon Sep 17 00:00:00 2001 From: John Hoford Date: Thu, 11 Oct 2012 12:55:05 -0700 Subject: fixed manta image size and double FX issue bug:7328636 Change-Id: I572255c65fb2d461dce6f52d056be6b3c4d987f6 --- .../gallery3d/filtershow/FilterShowActivity.java | 17 +++++++++++++++-- .../gallery3d/filtershow/cache/ImageLoader.java | 6 ++++-- .../filters/ImageFilterParametricBorder.java | 1 + .../filtershow/filters/ImageFilterVignette.java | 1 + .../gallery3d/filtershow/presets/ImagePreset.java | 22 ++++++++++++++-------- 5 files changed, 35 insertions(+), 12 deletions(-) diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java index 7ad1b80b9..d544e53d3 100644 --- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java +++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java @@ -11,11 +11,14 @@ import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; +import android.graphics.Point; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; +import android.util.DisplayMetrics; import android.util.Log; import android.util.TypedValue; +import android.view.Display; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; @@ -240,12 +243,22 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, String data = intent.getDataString(); if (data != null) { Uri uri = Uri.parse(data); - mImageLoader.loadBitmap(uri); + mImageLoader.loadBitmap(uri,getScreenImageSize()); } else { pickImage(); } } + private int getScreenImageSize(){ + DisplayMetrics metrics = new DisplayMetrics(); + Display display = getWindowManager().getDefaultDisplay(); + Point size = new Point(); + display.getSize(size); + display.getMetrics(metrics); + int msize = Math.min(size.x, size.y); + return (133*msize)/metrics.densityDpi; + } + private void showSavingProgress() { ProgressDialog progress; if (mSavingProgressDialog != null) { @@ -689,7 +702,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, if (resultCode == RESULT_OK) { if (requestCode == SELECT_PICTURE) { Uri selectedImageUri = data.getData(); - mImageLoader.loadBitmap(selectedImageUri); + mImageLoader.loadBitmap(selectedImageUri,getScreenImageSize()); } } } diff --git a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java index 54d71ad77..e00a1b77d 100644 --- a/src/com/android/gallery3d/filtershow/cache/ImageLoader.java +++ b/src/com/android/gallery3d/filtershow/cache/ImageLoader.java @@ -61,11 +61,12 @@ public class ImageLoader { mHiresCache = new DelayedPresetCache(this, 2); } - public void loadBitmap(Uri uri) { + public void loadBitmap(Uri uri,int size) { mUri = uri; mOrientation = getOrientation(uri); + mOriginalBitmapSmall = loadScaledBitmap(uri, 160); - mOriginalBitmapLarge = loadScaledBitmap(uri, 320); + mOriginalBitmapLarge = loadScaledBitmap(uri, size); updateBitmaps(); } @@ -179,6 +180,7 @@ public class ImageLoader { // decode with inSampleSize BitmapFactory.Options o2 = new BitmapFactory.Options(); o2.inSampleSize = scale; + closeStream(is); is = mContext.getContentResolver().openInputStream(uri); return BitmapFactory.decodeStream(is, null, o2); diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterParametricBorder.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterParametricBorder.java index 2ead04764..ce7bcf74c 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterParametricBorder.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterParametricBorder.java @@ -14,6 +14,7 @@ public class ImageFilterParametricBorder extends ImageFilter { private int mBorderCornerRadius = 10; public ImageFilterParametricBorder() { + setFilterType(TYPE_BORDER); mName = "Border"; } diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterVignette.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterVignette.java index 4c43410e3..fed583832 100644 --- a/src/com/android/gallery3d/filtershow/filters/ImageFilterVignette.java +++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterVignette.java @@ -6,6 +6,7 @@ import android.graphics.Bitmap; public class ImageFilterVignette extends ImageFilter { public ImageFilterVignette() { + setFilterType(TYPE_VIGNETTE); mName = "Vignette"; } diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java index 0ddb0170f..18aa1fb1d 100644 --- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java +++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java @@ -122,32 +122,38 @@ public class ImagePreset { } public void add(ImageFilter filter) { + if (filter.getFilterType() == ImageFilter.TYPE_BORDER){ setHistoryName("Border"); setBorder(filter); } else if (filter.getFilterType() == ImageFilter.TYPE_FX){ - Vector fl = mFilters; + boolean found = false; for (int i = 0; i < mFilters.size(); i++) { - byte type = fl.get(i).getFilterType(); + byte type = mFilters.get(i).getFilterType(); if (found) { if (type != ImageFilter.TYPE_VIGNETTE){ - fl.remove(i); + mFilters.remove(i); + continue; } - } else if (type==ImageFilter.TYPE_FX){ - fl.remove(i); - fl.add(i, filter); + } + if (type==ImageFilter.TYPE_FX){ + mFilters.remove(i); + mFilters.add(i, filter); setHistoryName(filter.getName()); found = true; } } - mFilters.add(filter); - setHistoryName(filter.getName()); + if (!found) { + mFilters.add(filter); + setHistoryName(filter.getName()); + } } else { mFilters.add(filter); setHistoryName(filter.getName()); } + } public void remove(String filterName) { -- cgit v1.2.3