diff options
author | nicolasroard <nicolasroard@google.com> | 2013-03-04 21:43:49 -0800 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2013-03-05 00:16:17 -0800 |
commit | 6aa73e7615a165c185778c238a7d6c73b6b56eff (patch) | |
tree | 6d359d4b945359e5d11afea5d3c7d9d215210ff1 /src/com/android/gallery3d/filtershow/imageshow/MasterImage.java | |
parent | 72db7ea0c18e5cc2f465252b53d9b6d2a8dcc6a0 (diff) | |
download | android_packages_apps_Snap-6aa73e7615a165c185778c238a7d6c73b6b56eff.tar.gz android_packages_apps_Snap-6aa73e7615a165c185778c238a7d6c73b6b56eff.tar.bz2 android_packages_apps_Snap-6aa73e7615a165c185778c238a7d6c73b6b56eff.zip |
Visual History
Change-Id: I3397c44b8c47985c97de5b82456c03469b2fb8db
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/MasterImage.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/imageshow/MasterImage.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java index e93c3713f..209c3bdb9 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java +++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java @@ -39,6 +39,7 @@ public class MasterImage implements RenderingRequestCaller { private static MasterImage sMasterImage = null; private static int sIconSeedSize = 128; + private static float sHistoryPreviewSize = 128.0f; private Bitmap mThumbnailBitmap; private ImageFilter mCurrentFilter = null; @@ -132,6 +133,7 @@ public class MasterImage implements RenderingRequestCaller { mPreset.fillImageStateAdapter(mState); if (addToHistory) { mHistory.addHistoryItem(mPreset); + renderHistoryPreview(); } updatePresets(true); GeometryMetadata geo = mPreset.mGeoData; @@ -141,6 +143,23 @@ public class MasterImage implements RenderingRequestCaller { mPreviousGeometry = new GeometryMetadata(geo); } + private void renderHistoryPreview() { + ImagePreset historyPreset = mPreset; + if (historyPreset != null) { + Bitmap preview = mLoader.getOriginalBitmapSmall(); + if (preview != null) { + float s = Math.min(preview.getWidth(), preview.getHeight()); + float f = sHistoryPreviewSize / s; + int w = (int) (preview.getWidth() * f); + int h = (int) (preview.getHeight() * f); + Bitmap historyPreview = Bitmap.createScaledBitmap(preview, w, h, true); + historyPreset.setPreviewImage(historyPreview); + RenderingRequest.post(historyPreview, + historyPreset, RenderingRequest.ICON_RENDERING, this); + } + } + } + private void setGeometry() { Bitmap image = mLoader.getOriginalBitmapLarge(); if (image == null) { @@ -292,6 +311,7 @@ public class MasterImage implements RenderingRequestCaller { invalidatePartialPreview(); needsUpdateFullResPreview(); FilteringPipeline.getPipeline().updatePreviewBuffer(); + renderHistoryPreview(); } public void setImageShowSize(int w, int h) { @@ -356,6 +376,12 @@ public class MasterImage implements RenderingRequestCaller { mPartialBitmap = request.getBitmap(); notifyObservers(); } + if (request.getType() == RenderingRequest.ICON_RENDERING) { + // History preview images + ImagePreset preset = request.getOriginalImagePreset(); + preset.setPreviewImage(request.getBitmap()); + mHistory.notifyDataSetChanged(); + } } public static void reset() { |