summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/gallery3d/filtershow/FilterShowActivity.java7
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilter.java30
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterFx.java2
-rw-r--r--src/com/android/gallery3d/filtershow/filters/ImageFilterHue.java2
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageShow.java39
5 files changed, 67 insertions, 13 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index 35c74ebe1..0746751b9 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -114,7 +114,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
private boolean mSharingImage = false;
private WeakReference<ProgressDialog> mSavingProgressDialog;
-
+ private static final int SEEK_BAR_MAX = 600;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -325,7 +325,8 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
fillListBorders(listBorders);
SeekBar seekBar = (SeekBar) findViewById(R.id.filterSeekBar);
- seekBar.setMax(200);
+ seekBar.setMax(SEEK_BAR_MAX);
+
mImageShow.setSeekBar(seekBar);
mImageZoom.setSeekBar(seekBar);
mPanelController.setRowPanel(findViewById(R.id.secondRowPanel));
@@ -535,7 +536,7 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
mCurrentImageSmallFilter = filter;
filter.setPreviousImageSmallFilter(null);
- filter.setImageFilter(new ImageFilterFx(null,ImageFilterFx.ORIG));
+ filter.setImageFilter(new ImageFilterFx(null,getString(R.string.ffx_original)));
filter.setController(this);
filter.setImageLoader(mImageLoader);
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilter.java b/src/com/android/gallery3d/filtershow/filters/ImageFilter.java
index 6d0c020a7..36f2b104f 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilter.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilter.java
@@ -5,6 +5,9 @@ import android.graphics.Bitmap;
public class ImageFilter implements Cloneable {
+ protected int mMaxParameter = 100;
+ protected int mMinParameter = -100;
+ protected int mDefaultParameter = 0;
protected int mParameter = 0;
protected String mName = "Original";
private final String LOGTAG = "ImageFilter";
@@ -29,6 +32,9 @@ public class ImageFilter implements Cloneable {
filter.setName(getName());
filter.setParameter(getParameter());
filter.setFilterType(filterType);
+ filter.mMaxParameter = mMaxParameter;
+ filter.mMinParameter = mMinParameter;
+ filter.mDefaultParameter = mDefaultParameter;
return filter;
}
@@ -53,6 +59,30 @@ public class ImageFilter implements Cloneable {
mParameter = value;
}
+ /**
+ * The maximum allowed value (inclusive)
+ * @return maximum value allowed as input to this filter
+ */
+ public int getMaxParameter(){
+ return mMaxParameter;
+ }
+
+ /**
+ * The minimum allowed value (inclusive)
+ * @return minimum value allowed as input to this filter
+ */
+ public int getMinParameter(){
+ return mMinParameter;
+ }
+
+ /**
+ * Returns the default value returned by this filter.
+ * @return default value
+ */
+ public int getDefaultParameter(){
+ return mDefaultParameter;
+ }
+
public boolean same(ImageFilter filter) {
if (!filter.getName().equalsIgnoreCase(getName())) {
return false;
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterFx.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterFx.java
index 7d8f41537..93cde1fe5 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterFx.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterFx.java
@@ -12,7 +12,7 @@ import java.util.Arrays;
public class ImageFilterFx extends ImageFilter {
private static final String TAG = "ImageFilterFx";
Bitmap fxBitmap;
- public static final String ORIG = "Original";
+
public ImageFilterFx(Bitmap fxBitmap,String name) {
setFilterType(TYPE_FX);
mName = name;
diff --git a/src/com/android/gallery3d/filtershow/filters/ImageFilterHue.java b/src/com/android/gallery3d/filtershow/filters/ImageFilterHue.java
index 6f6f9e875..e5e52ecd0 100644
--- a/src/com/android/gallery3d/filtershow/filters/ImageFilterHue.java
+++ b/src/com/android/gallery3d/filtershow/filters/ImageFilterHue.java
@@ -9,6 +9,8 @@ public class ImageFilterHue extends ImageFilter {
public ImageFilterHue() {
mName = "Hue";
cmatrix = new ColorSpaceMatrix();
+ mMaxParameter = 180;
+ mMinParameter = -180;
}
@Override
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
index 3fd6d4f85..b7d3b1ee9 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
@@ -101,18 +101,28 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
public void select() {
if (getCurrentFilter() != null) {
int parameter = getCurrentFilter().getParameter();
- updateSeekBar(parameter);
+ int maxp = getCurrentFilter().getMaxParameter();
+ int minp = getCurrentFilter().getMinParameter();
+ updateSeekBar(parameter,minp,maxp);
}
if (mSeekBar != null) {
mSeekBar.setOnSeekBarChangeListener(this);
}
}
- public void updateSeekBar(int parameter) {
+ private int parameterToUI(int parameter,int minp,int maxp,int uimax){
+ return (uimax*(parameter-minp))/(maxp-minp);
+ }
+
+ private int uiToParameter(int ui,int minp,int maxp,int uimax){
+ return ((maxp-minp)*ui)/uimax+minp;
+ }
+ public void updateSeekBar(int parameter,int minp,int maxp) {
if (mSeekBar == null) {
return;
}
- int progress = parameter + 100;
+ int seekMax = mSeekBar.getMax();
+ int progress = parameterToUI(parameter,minp,maxp,seekMax);
mSeekBar.setProgress(progress);
if (getPanelController() != null) {
getPanelController().onNewValue(parameter);
@@ -124,7 +134,7 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
}
public void resetParameter() {
- onNewValue(0);
+ onNewValue(getCurrentFilter().getDefaultParameter());
if (USE_SLIDER_GESTURE) {
mSliderController.reset();
}
@@ -139,18 +149,22 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
}
@Override
- public void onNewValue(int value) {
+ public void onNewValue(int parameter) {
+ int maxp = 100;
+ int minp = -100;
if (getCurrentFilter() != null) {
- getCurrentFilter().setParameter(value);
+ getCurrentFilter().setParameter(parameter);
+ maxp = getCurrentFilter().getMaxParameter();
+ minp = getCurrentFilter().getMinParameter();
}
if (getImagePreset() != null) {
mImageLoader.resetImageForPreset(getImagePreset(), this);
getImagePreset().fillImageStateAdapter(mImageStateAdapter);
}
if (getPanelController() != null) {
- getPanelController().onNewValue(value);
+ getPanelController().onNewValue(parameter);
}
- updateSeekBar(value);
+ updateSeekBar(parameter,minp,maxp);
invalidate();
}
@@ -503,7 +517,14 @@ public class ImageShow extends View implements SliderListener, OnSeekBarChangeLi
@Override
public void onProgressChanged(SeekBar arg0, int progress, boolean arg2) {
- onNewValue(progress - 100);
+ int parameter = progress;
+ if (getCurrentFilter()!=null){
+ int maxp = getCurrentFilter().getMaxParameter();
+ int minp = getCurrentFilter().getMinParameter();
+ parameter = uiToParameter(progress,minp,maxp,arg0.getMax());
+ }
+
+ onNewValue(parameter);
}
@Override