From 95404c666640177abf72ca2278585a16f30cf390 Mon Sep 17 00:00:00 2001 From: nicolasroard Date: Wed, 17 Oct 2012 12:47:53 -0700 Subject: [PATCH] Fix UI stuff bug:7354368 bug:7362027 bug:7344915 Change-Id: I2efd5de0971e5dfbc989d60860348280c03b3db4 --- res/layout/filtershow_activity.xml | 24 ++++++----- res/values-sw600dp/dimensions.xml | 20 +++++++++ res/values-sw800dp/dimensions.xml | 20 +++++++++ res/values/dimensions.xml | 4 ++ res/values/filtershow_color.xml | 1 + .../gallery3d/filtershow/FilterShowActivity.java | 7 +--- .../gallery3d/filtershow/imageshow/ImageShow.java | 30 +++++++++----- .../filtershow/imageshow/ImageSmallBorder.java | 16 ++++---- .../filtershow/imageshow/ImageSmallFilter.java | 47 ++++++++-------------- 9 files changed, 108 insertions(+), 61 deletions(-) create mode 100644 res/values-sw600dp/dimensions.xml create mode 100644 res/values-sw800dp/dimensions.xml diff --git a/res/layout/filtershow_activity.xml b/res/layout/filtershow_activity.xml index 8a51d89ff..1bdabe025 100644 --- a/res/layout/filtershow_activity.xml +++ b/res/layout/filtershow_activity.xml @@ -18,7 +18,7 @@ + android:background="@color/background_screen" > @@ -187,7 +188,7 @@ @@ -225,13 +226,14 @@ @@ -239,7 +241,7 @@ @@ -247,6 +249,7 @@ android:id="@+id/listBorders" android:layout_width="wrap_content" android:layout_height="match_parent" + android:layout_marginLeft="@dimen/thumbnail_margin" android:orientation="horizontal" > @@ -254,7 +257,7 @@ @@ -303,7 +306,7 @@ @@ -312,6 +315,7 @@ android:id="@+id/listColorsFx" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginLeft="@dimen/thumbnail_margin" android:orientation="horizontal" > + + + + 128dip + 3dip + diff --git a/res/values-sw800dp/dimensions.xml b/res/values-sw800dp/dimensions.xml new file mode 100644 index 000000000..ff04de7bc --- /dev/null +++ b/res/values-sw800dp/dimensions.xml @@ -0,0 +1,20 @@ + + + + + 128dip + 3dip + diff --git a/res/values/dimensions.xml b/res/values/dimensions.xml index 5d8d172ce..dc9e8c300 100644 --- a/res/values/dimensions.xml +++ b/res/values/dimensions.xml @@ -46,4 +46,8 @@ 48dp + + + 96dip + 3dip diff --git a/res/values/filtershow_color.xml b/res/values/filtershow_color.xml index b8a18222f..bbf24d87d 100644 --- a/res/values/filtershow_color.xml +++ b/res/values/filtershow_color.xml @@ -19,6 +19,7 @@ #FF0000 #0000FF #FFFFFF + #000000 #363949 #1e2028 #333333 diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java index 0746751b9..162d2c1c6 100644 --- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java +++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java @@ -121,12 +121,13 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, ImageFilterRS.setRenderScriptContext(this); + ImageShow.setDefaultBackgroundColor(getResources().getColor(R.color.background_screen)); // TODO: get those values from XML. ImageShow.setTextSize((int) getPixelsFromDip(12)); ImageShow.setTextPadding((int) getPixelsFromDip(10)); ImageButtonTitle.setTextSize((int) getPixelsFromDip(12)); ImageButtonTitle.setTextPadding((int) getPixelsFromDip(10)); - ImageSmallFilter.setMargin((int) getPixelsFromDip(6)); + ImageSmallFilter.setMargin((int) getPixelsFromDip(3)); ImageSmallFilter.setTextMargin((int) getPixelsFromDip(4)); mImageBorderSize = (int) getPixelsFromDip(20); Drawable curveHandle = getResources().getDrawable(R.drawable.camera_crop_holo); @@ -535,7 +536,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, filter.setSelected(true); mCurrentImageSmallFilter = filter; - filter.setPreviousImageSmallFilter(null); filter.setImageFilter(new ImageFilterFx(null,getString(R.string.ffx_original))); filter.setController(this); @@ -553,8 +553,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, for (int i = 0; i < p; i++) { filter = new ImageSmallFilter(this); - - filter.setPreviousImageSmallFilter(previousFilter); filter.setImageFilter(fxArray[i]); filter.setController(this); filter.setImageLoader(mImageLoader); @@ -587,7 +585,6 @@ public class FilterShowActivity extends Activity implements OnItemClickListener, ImageSmallFilter previousFilter = null; for (int i = 0; i < p; i++) { ImageSmallBorder filter = new ImageSmallBorder(this); - filter.setPreviousImageSmallFilter(previousFilter); filter.setImageFilter(borders[i]); filter.setController(this); filter.setBorder(true); diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java index b7d3b1ee9..3b074bf4f 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java @@ -19,6 +19,7 @@ package com.android.gallery3d.filtershow.imageshow; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; +import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.RectF; @@ -57,7 +58,10 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi private boolean mDirtyGeometry = true; private Bitmap mBackgroundImage = null; - // TODO: remove protected here, it should be private + private final boolean USE_BACKGROUND_IMAGE = false; + private static int mBackgroundColor = Color.RED; + + // TODO: remove protected here, it should be private protected Bitmap mForegroundImage = null; protected Bitmap mFilteredImage = null; @@ -88,6 +92,10 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi private SeekBar mSeekBar = null; private PanelController mController = null; + public static void setDefaultBackgroundColor(int value) { + mBackgroundColor = value; + } + public static void setTextSize(int value) { mTextSize = value; } @@ -355,14 +363,18 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi } public void drawBackground(Canvas canvas) { - if (mBackgroundImage == null) { - mBackgroundImage = mImageLoader.getBackgroundBitmap(getResources()); - } - if (mBackgroundImage != null) { - Rect s = new Rect(0, 0, mBackgroundImage.getWidth(), - mBackgroundImage.getHeight()); - Rect d = new Rect(0, 0, getWidth(), getHeight()); - canvas.drawBitmap(mBackgroundImage, s, d, mPaint); + if (USE_BACKGROUND_IMAGE) { + if (mBackgroundImage == null) { + mBackgroundImage = mImageLoader.getBackgroundBitmap(getResources()); + } + if (mBackgroundImage != null) { + Rect s = new Rect(0, 0, mBackgroundImage.getWidth(), + mBackgroundImage.getHeight()); + Rect d = new Rect(0, 0, getWidth(), getHeight()); + canvas.drawBitmap(mBackgroundImage, s, d, mPaint); + } + } else { + canvas.drawColor(mBackgroundColor); } } diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageSmallBorder.java b/src/com/android/gallery3d/filtershow/imageshow/ImageSmallBorder.java index 90986f912..25112ad55 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageSmallBorder.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageSmallBorder.java @@ -31,14 +31,16 @@ public class ImageSmallBorder extends ImageSmallFilter { @Override public void onDraw(Canvas canvas) { getFilteredImage(); - if (mIsSelected) { - canvas.drawColor(mSelectedBackgroundColor); - } else { - canvas.drawColor(mBackgroundColor); - } + canvas.drawColor(mBackgroundColor); // TODO: simplify & make faster... mPaint.setColor(mInnerBorderColor); - RectF border = new RectF(mMargin, mMargin, getWidth() - mMargin - 1, getHeight() - mMargin); + RectF border = new RectF(mMargin, 2*mMargin, getWidth() - mMargin - 1, getWidth()); + + if (mIsSelected) { + mPaint.setColor(mSelectedBackgroundColor); + canvas.drawRect(0, mMargin, getWidth(), getWidth() + mMargin, mPaint); + } + canvas.drawLine(0, 0, getWidth(), 0, mPaint); mPaint.setStrokeWidth(mInnerBorderWidth); Path path = new Path(); @@ -47,7 +49,7 @@ public class ImageSmallBorder extends ImageSmallFilter { canvas.drawPath(path, mPaint); mPaint.setStyle(Paint.Style.FILL_AND_STROKE); canvas.save(); - canvas.clipRect(mMargin + 1, mMargin, getWidth() - mMargin - 2, getHeight() - mMargin - 1, + canvas.clipRect(mMargin + 1, 2*mMargin, getWidth() - mMargin - 2, getWidth() - 1, Region.Op.INTERSECT); canvas.translate(mMargin, mMargin + 1); canvas.scale(mImageScaleFactor, mImageScaleFactor); diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java b/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java index a5d99a098..57834587a 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java +++ b/src/com/android/gallery3d/filtershow/imageshow/ImageSmallFilter.java @@ -23,8 +23,6 @@ public class ImageSmallFilter extends ImageShow implements View.OnClickListener private boolean mSetBorder = false; protected final Paint mPaint = new Paint(); protected boolean mIsSelected = false; - protected boolean mNextIsSelected = false; - private ImageSmallFilter mPreviousImageSmallFilter = null; // TODO: move this to xml. protected static int mMargin = 12; @@ -58,28 +56,14 @@ public class ImageSmallFilter extends ImageShow implements View.OnClickListener mImagePreset.add(mImageFilter); } - public void setPreviousImageSmallFilter(ImageSmallFilter previous) { - mPreviousImageSmallFilter = previous; - } - @Override public void setSelected(boolean value) { if (mIsSelected != value) { invalidate(); - if (mPreviousImageSmallFilter != null) { - mPreviousImageSmallFilter.setNextSelected(value); - } } mIsSelected = value; } - public void setNextSelected(boolean value) { - if (mNextIsSelected != value) { - invalidate(); - } - mNextIsSelected = value; - } - public void setBorder(boolean value) { mSetBorder = value; } @@ -146,37 +130,40 @@ public class ImageSmallFilter extends ImageShow implements View.OnClickListener public void onDraw(Canvas canvas) { getFilteredImage(); canvas.drawColor(mBackgroundColor); - Rect d = new Rect(0, mMargin, getWidth() - mMargin, getWidth()); float textWidth = mPaint.measureText(getImagePreset().name()); int h = mTextSize + 2 * mTextPadding; int x = (int) ((getWidth() - textWidth) / 2); int y = getHeight(); if (mIsSelected) { mPaint.setColor(mSelectedBackgroundColor); - canvas.drawRect(0, 0, getWidth(), getWidth() + mMargin, mPaint); - } - if (mNextIsSelected) { - mPaint.setColor(mSelectedBackgroundColor); - canvas.drawRect(getWidth() - mMargin, 0, getWidth(), getWidth() + mMargin, mPaint); + canvas.drawRect(0, mMargin, getWidth(), getWidth() + mMargin, mPaint); } - drawImage(canvas, mFilteredImage, d); + Rect destination = new Rect(mMargin, 2*mMargin, getWidth() - mMargin, getWidth()); + drawImage(canvas, mFilteredImage, destination); mPaint.setTextSize(mTextSize); mPaint.setColor(mTextColor); canvas.drawText(getImagePreset().name(), x, y - mTextMargin, mPaint); } - public void drawImage(Canvas canvas, Bitmap image, Rect d) { + public void drawImage(Canvas canvas, Bitmap image, Rect destination) { if (image != null) { int iw = image.getWidth(); int ih = image.getHeight(); - int iy = (int) ((ih - iw) / 2.0f); - int ix = 0; + int x = 0; + int y = 0; + int size = 0; + Rect source = null; if (iw > ih) { - iy = 0; - ix = (int) ((iw - ih) / 2.0f); + size = ih; + x = (int) ((iw - size) / 2.0f); + y = 0; + } else { + size = iw; + x = 0; + y = (int) ((ih - size) / 2.0f); } - Rect s = new Rect(ix, iy, ix + iw, iy + iw); - canvas.drawBitmap(image, s, d, mPaint); + source = new Rect(x, y, x + size, y + size); + canvas.drawBitmap(image, source, destination, mPaint); } } -- 2.11.0