summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWei-Ta Chen <weita@google.com>2011-10-17 15:49:27 -0700
committerWei-Ta Chen <weita@google.com>2011-10-18 12:04:12 -0700
commit66188959498860c8b43ab7b9119c7b5c890c83dc (patch)
treeec68532411380fbfd3f9536b956d016f242456cf /src
parent15fd5d2622a835b6998d22474c774ea6bca15a15 (diff)
downloadLegacyCamera-66188959498860c8b43ab7b9119c7b5c890c83dc.zip
LegacyCamera-66188959498860c8b43ab7b9119c7b5c890c83dc.tar.gz
LegacyCamera-66188959498860c8b43ab7b9119c7b5c890c83dc.tar.bz2
Fix getting an empty thumbnail in reviewing panorama.
The sample size for generating a thumbnail should be calculated in a way that also considers the case of a portrait image, i.e., height > width. The SharePopup should also puts the thumbnail of a portrait panorama in the center of the thumbnail view. Bug: 5411488 Change-Id: I5e86a91829de77f4694c039bd871e6831f3906cb
Diffstat (limited to 'src')
-rwxr-xr-xsrc/com/android/camera/panorama/PanoramaActivity.java13
-rw-r--r--src/com/android/camera/ui/SharePopup.java5
2 files changed, 10 insertions, 8 deletions
diff --git a/src/com/android/camera/panorama/PanoramaActivity.java b/src/com/android/camera/panorama/PanoramaActivity.java
index 25c565f..48a455e 100755
--- a/src/com/android/camera/panorama/PanoramaActivity.java
+++ b/src/com/android/camera/panorama/PanoramaActivity.java
@@ -776,11 +776,14 @@ public class PanoramaActivity extends ActivityBase implements
int orientation = Exif.getOrientation(jpeg.data);
Uri uri = savePanorama(jpeg.data, jpeg.width, jpeg.height, orientation);
if (uri != null) {
- // Create a thumbnail whose width is equal or bigger
- // than the entire screen.
- int ratio = (int) Math.ceil((double) jpeg.width /
- mPanoLayout.getWidth());
- int inSampleSize = Integer.highestOneBit(ratio);
+ // Create a thumbnail whose width or height is equal or bigger
+ // than the screen's width or height.
+ int widthRatio = (int) Math.ceil((double) jpeg.width
+ / mPanoLayout.getWidth());
+ int heightRatio = (int) Math.ceil((double) jpeg.height
+ / mPanoLayout.getHeight());
+ int inSampleSize = Integer.highestOneBit(
+ Math.max(widthRatio, heightRatio));
mThumbnail = Thumbnail.createThumbnail(
jpeg.data, orientation, inSampleSize, uri);
}
diff --git a/src/com/android/camera/ui/SharePopup.java b/src/com/android/camera/ui/SharePopup.java
index 84bada4..3917c54 100644
--- a/src/com/android/camera/ui/SharePopup.java
+++ b/src/com/android/camera/ui/SharePopup.java
@@ -198,10 +198,9 @@ public class SharePopup extends PopupWindow implements View.OnClickListener,
new RelativeLayout.LayoutParams(lpOld.width, lpOld.height);
mRootView.setBackgroundDrawable(null);
- if (mBitmapWidth > mBitmapHeight*2) {
+ if (mBitmapWidth > mBitmapHeight * 2 || mBitmapHeight > mBitmapWidth * 2) {
// panorama image
- lpNew.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
- lpNew.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
+ lpNew.addRule(RelativeLayout.CENTER_HORIZONTAL);
lpNew.addRule(RelativeLayout.CENTER_VERTICAL);
// panorama images block the preview from showing in the background