summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJohn Hoford <hoford@google.com>2013-09-13 05:08:22 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-09-13 05:08:23 +0000
commitbc7e9fff7e94bb96fb7fe46080dcde2b81e60817 (patch)
treeb41b49a02f1c96bf5efec0d41faed47916b888db /src
parent7fa373b0c3143c2c55a0d72487607d5a05c72e1d (diff)
parent6125a082a2b5ddc0d34a5198c5a7e826bd77e202 (diff)
downloadandroid_packages_apps_Gallery2-bc7e9fff7e94bb96fb7fe46080dcde2b81e60817.tar.gz
android_packages_apps_Gallery2-bc7e9fff7e94bb96fb7fe46080dcde2b81e60817.tar.bz2
android_packages_apps_Gallery2-bc7e9fff7e94bb96fb7fe46080dcde2b81e60817.zip
Merge "Draw UI fixes" into gb-ub-photos-carlsbad
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/filtershow/FilterShowActivity.java18
-rw-r--r--src/com/android/gallery3d/filtershow/colorpicker/ColorCompareView.java177
-rw-r--r--src/com/android/gallery3d/filtershow/colorpicker/ColorGridDialog.java3
-rw-r--r--src/com/android/gallery3d/filtershow/colorpicker/ColorHueView.java23
-rw-r--r--src/com/android/gallery3d/filtershow/colorpicker/ColorListener.java1
-rw-r--r--src/com/android/gallery3d/filtershow/colorpicker/ColorOpacityView.java18
-rw-r--r--src/com/android/gallery3d/filtershow/colorpicker/ColorPickerDialog.java68
-rw-r--r--src/com/android/gallery3d/filtershow/colorpicker/ColorSVRectView.java5
-rw-r--r--src/com/android/gallery3d/filtershow/controller/ColorChooser.java4
-rw-r--r--src/com/android/gallery3d/filtershow/controller/SliderBrightness.java3
-rw-r--r--src/com/android/gallery3d/filtershow/controller/SliderHue.java3
-rw-r--r--src/com/android/gallery3d/filtershow/controller/SliderOpacity.java3
-rw-r--r--src/com/android/gallery3d/filtershow/controller/SliderSaturation.java3
-rw-r--r--src/com/android/gallery3d/filtershow/editors/EditorColorBorderTabletUI.java39
-rw-r--r--src/com/android/gallery3d/filtershow/editors/EditorDrawTabletUI.java48
-rw-r--r--src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java2
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java47
17 files changed, 365 insertions, 100 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index 74c4570e5..e17fda5a4 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -127,7 +127,8 @@ import java.util.ArrayList;
import java.util.Vector;
public class FilterShowActivity extends FragmentActivity implements OnItemClickListener,
- OnShareTargetSelectedListener {
+ OnShareTargetSelectedListener, DialogInterface.OnShowListener,
+ DialogInterface.OnDismissListener{
private String mAction = "";
MasterImage mMasterImage = null;
@@ -188,6 +189,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
private ProcessingService mBoundService;
private boolean mIsBound = false;
private Menu mMenu;
+ private DialogInterface mCurrentDialog = null;
public ProcessingService getProcessingService() {
return mBoundService;
@@ -686,6 +688,16 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
return findViewById(id);
}
+ @Override
+ public void onShow(DialogInterface dialog) {
+ mCurrentDialog = dialog;
+ }
+
+ @Override
+ public void onDismiss(DialogInterface dialogInterface) {
+ mCurrentDialog = null;
+ }
+
private class LoadHighresBitmapTask extends AsyncTask<Void, Void, Boolean> {
@Override
protected Boolean doInBackground(Void... params) {
@@ -1194,6 +1206,10 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
fillCategories();
loadMainPanel();
+ if (mCurrentDialog != null) {
+ mCurrentDialog.dismiss();
+ mCurrentDialog = null;
+ }
// mLoadBitmapTask==null implies you have looked at the intent
if (!mShowingTinyPlanet && (mLoadBitmapTask == null)) {
mCategoryFiltersAdapter.removeTinyPlanet();
diff --git a/src/com/android/gallery3d/filtershow/colorpicker/ColorCompareView.java b/src/com/android/gallery3d/filtershow/colorpicker/ColorCompareView.java
new file mode 100644
index 000000000..15996713a
--- /dev/null
+++ b/src/com/android/gallery3d/filtershow/colorpicker/ColorCompareView.java
@@ -0,0 +1,177 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.gallery3d.filtershow.colorpicker;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.BitmapShader;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.graphics.Shader;
+import android.util.AttributeSet;
+import android.util.DisplayMetrics;
+import android.view.MotionEvent;
+import android.view.View;
+
+import com.android.gallery3d.R;
+
+import java.util.ArrayList;
+
+public class ColorCompareView extends View implements ColorListener {
+
+ private float mRadius;
+ private float mWidth;
+ private Paint mBarPaint1;
+ private Paint mOrigBarPaint1;
+ private Paint mCheckPaint;
+
+ private float mHeight;
+
+ private int mBgcolor = 0;
+
+ private float mBorder;
+
+ private float[] mHSVO = new float[4];
+ private float[] mOrigHSVO = new float[4];
+ private Path mRegion;
+ private Path mOrigRegion;
+
+ public final static float BORDER_SIZE = 0;
+ private int mCheckDim = 8;
+
+ public ColorCompareView(Context ctx, AttributeSet attrs) {
+ super(ctx, attrs);
+ DisplayMetrics metrics = ctx.getResources().getDisplayMetrics();
+ float mDpToPix = metrics.density;
+ mBorder = BORDER_SIZE * mDpToPix;
+ mBarPaint1 = new Paint();
+ mOrigBarPaint1 = new Paint();
+ Resources res = ctx.getResources();
+ mCheckDim = res.getDimensionPixelSize(R.dimen.draw_color_check_dim);
+ mBarPaint1.setStyle(Paint.Style.FILL);
+ mOrigBarPaint1.setStyle(Paint.Style.FILL);
+
+ makeCheckPaint();
+ }
+
+ private void makeCheckPaint() {
+ int imgdim = mCheckDim * 2;
+ int[] colors = new int[imgdim * imgdim];
+ for (int i = 0; i < colors.length; i++) {
+ int y = i / (imgdim * mCheckDim);
+ int x = (i / mCheckDim) % 2;
+ colors[i] = (x == y) ? 0xFFAAAAAA : 0xFF444444;
+ }
+ Bitmap bitmap = Bitmap.createBitmap(colors, imgdim, imgdim, Bitmap.Config.ARGB_8888);
+ BitmapShader bs = new BitmapShader(bitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
+ mCheckPaint = new Paint();
+ mCheckPaint.setShader(bs);
+ }
+
+ public boolean onDown(MotionEvent e) {
+ return true;
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+ if (event.getAction() != MotionEvent.ACTION_UP) {
+ return true;
+ }
+ float x = event.getX();
+ float y = event.getY();
+ if (x> mWidth-2*mHeight) {
+ resetToOriginal();
+ }
+ return true;
+ }
+
+ public void resetToOriginal(){
+ System.arraycopy(mOrigHSVO, 0, mHSVO, 0, mOrigHSVO.length);
+ updatePaint();
+ notifyColorListeners(mHSVO);
+ invalidate();
+ }
+
+ @Override
+ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+ mWidth = w;
+ mHeight = h;
+ updatePaint();
+ }
+
+ private void updatePaint() {
+ int color = Color.HSVToColor((int) (mHSVO[3] * 255), mHSVO);
+ mBarPaint1.setColor(color);
+ int origColor = Color.HSVToColor((int) (mOrigHSVO[3] * 255), mOrigHSVO);
+ mOrigBarPaint1.setColor(origColor);
+ mOrigRegion = new Path();
+ mOrigRegion.moveTo(mWidth, 0);
+ mOrigRegion.lineTo(mWidth, mHeight);
+ mOrigRegion.lineTo(mWidth - mHeight * 2, mHeight);
+ mOrigRegion.lineTo(mWidth - mHeight, 0);
+
+ mRegion = new Path();
+ mRegion.moveTo(0, 0);
+ mRegion.lineTo(mWidth - mHeight, 0);
+ mRegion.lineTo(mWidth - mHeight * 2, mHeight);
+ mRegion.lineTo(0, mHeight);
+
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+ canvas.drawColor(mBgcolor);
+ canvas.drawRect(mBorder, 0, mWidth, mHeight, mCheckPaint);
+ canvas.drawPath(mRegion, mBarPaint1);
+ canvas.drawPath(mOrigRegion, mOrigBarPaint1);
+ }
+
+ public void setOrigColor(float[] hsv) {
+ System.arraycopy(hsv, 0, mOrigHSVO, 0, mOrigHSVO.length);
+ int color2 = Color.HSVToColor((int) (mOrigHSVO[3] * 255), mOrigHSVO);
+ mOrigBarPaint1.setColor(color2);
+ updatePaint();
+ }
+
+ @Override
+ public void setColor(float[] hsv) {
+ System.arraycopy(hsv, 0, mHSVO, 0, mHSVO.length);
+ updatePaint();
+ invalidate();
+ }
+
+ ArrayList<ColorListener> mColorListeners = new ArrayList<ColorListener>();
+
+ public void notifyColorListeners(float[] hsvo) {
+ for (ColorListener l : mColorListeners) {
+ l.setColor(hsvo);
+ }
+ }
+
+ public void addColorListener(ColorListener l) {
+ mColorListeners.add(l);
+ }
+
+ public void removeColorListener(ColorListener l) {
+ mColorListeners.remove(l);
+ }
+}
+
diff --git a/src/com/android/gallery3d/filtershow/colorpicker/ColorGridDialog.java b/src/com/android/gallery3d/filtershow/colorpicker/ColorGridDialog.java
index dd4df7dc8..028599478 100644
--- a/src/com/android/gallery3d/filtershow/colorpicker/ColorGridDialog.java
+++ b/src/com/android/gallery3d/filtershow/colorpicker/ColorGridDialog.java
@@ -92,6 +92,9 @@ public class ColorGridDialog extends Dialog {
c |= alpha << 24;
mCallback.setColor(c);
}
+ @Override
+ public void addColorListener(ColorListener l) {
+ }
};
ColorPickerDialog cpd = new ColorPickerDialog(this.getContext(), cl);
cpd.show();
diff --git a/src/com/android/gallery3d/filtershow/colorpicker/ColorHueView.java b/src/com/android/gallery3d/filtershow/colorpicker/ColorHueView.java
index 713ab112a..498f5a4b6 100644
--- a/src/com/android/gallery3d/filtershow/colorpicker/ColorHueView.java
+++ b/src/com/android/gallery3d/filtershow/colorpicker/ColorHueView.java
@@ -81,8 +81,8 @@ public class ColorHueView extends View implements ColorListener {
mLinePaint2.setColor(mSliderColor);
mLinePaint2.setStrokeWidth(4);
- mBitmap = Bitmap.createBitmap(256, 7, Bitmap.Config.ARGB_8888);
- mTmpBuff = new int[256 * 7];
+ mBitmap = Bitmap.createBitmap(256, 2, Bitmap.Config.ARGB_8888);
+ mTmpBuff = new int[mBitmap.getWidth() * mBitmap.getHeight()];
mPaint.setAntiAlias(true);
mPaint.setFilterBitmap(true);
fillBitmap();
@@ -96,20 +96,13 @@ public class ColorHueView extends View implements ColorListener {
for (int x = 0; x < w; x++) {
float hue = 360 * (x) / (float) w;
-
- int color = Color.HSVToColor((int)(mHSVO[3]*255),mHSVO);
- mTmpBuff[x + w * 2] = color;
- mTmpBuff[x + w * 3] = color;
- mTmpBuff[x + w * 4] = color;
-
mTmpHSV[0] = hue;
mTmpHSV[1] = 1;
mTmpHSV[2] = 1;
- color = Color.HSVToColor(mTmpHSV);
+ int color = Color.HSVToColor(mTmpHSV);
mTmpBuff[x] = color;
mTmpBuff[x + w] = color;
- mTmpBuff[x + w * 5] = color;
- mTmpBuff[x + w * 6] = color;
+
}
mBitmap.setPixels(mTmpBuff, 0, w, 0, 0, w, h);
@@ -192,10 +185,12 @@ public class ColorHueView extends View implements ColorListener {
}
private void makeCheckPaint(){
- int[] colors = new int[16 * 16];
+ int block = 16;
+ int checkdim = block*2;
+ int[] colors = new int[checkdim * checkdim];
for (int i = 0; i < colors.length; i++) {
- int y = i / (16 * 8);
- int x = (i / 8) % 2;
+ int y = i / (checkdim * block);
+ int x = (i / block) % 2;
colors[i] = (x == y) ? 0xFFAAAAAA : 0xFF444444;
}
Bitmap bitmap = Bitmap.createBitmap(colors, 16, 16, Bitmap.Config.ARGB_8888);
diff --git a/src/com/android/gallery3d/filtershow/colorpicker/ColorListener.java b/src/com/android/gallery3d/filtershow/colorpicker/ColorListener.java
index 5127dad26..22dd4245a 100644
--- a/src/com/android/gallery3d/filtershow/colorpicker/ColorListener.java
+++ b/src/com/android/gallery3d/filtershow/colorpicker/ColorListener.java
@@ -18,4 +18,5 @@ package com.android.gallery3d.filtershow.colorpicker;
public interface ColorListener {
void setColor(float[] hsvo);
+ public void addColorListener(ColorListener l);
}
diff --git a/src/com/android/gallery3d/filtershow/colorpicker/ColorOpacityView.java b/src/com/android/gallery3d/filtershow/colorpicker/ColorOpacityView.java
index de4b2f911..ec15b5b09 100644
--- a/src/com/android/gallery3d/filtershow/colorpicker/ColorOpacityView.java
+++ b/src/com/android/gallery3d/filtershow/colorpicker/ColorOpacityView.java
@@ -17,6 +17,7 @@
package com.android.gallery3d.filtershow.colorpicker;
import android.content.Context;
+import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
@@ -56,7 +57,7 @@ public class ColorOpacityView extends View implements ColorListener {
private float mDotY = mBorder;
private final static float DOT_SIZE = ColorHueView.DOT_SIZE;
public final static float BORDER_SIZE = 20;;
-
+ private int mCheckDim = 8;
public ColorOpacityView(Context ctx, AttributeSet attrs) {
super(ctx, attrs);
DisplayMetrics metrics = ctx.getResources().getDisplayMetrics();
@@ -68,8 +69,10 @@ public class ColorOpacityView extends View implements ColorListener {
mDotPaint = new Paint();
mDotPaint.setStyle(Paint.Style.FILL);
- mDotPaint.setColor(ctx.getResources().getColor(R.color.slider_dot_color));
- mSliderColor = ctx.getResources().getColor(R.color.slider_line_color);
+ Resources res = ctx.getResources();
+ mCheckDim = res.getDimensionPixelSize(R.dimen.draw_color_check_dim);
+ mDotPaint.setColor(res.getColor(R.color.slider_dot_color));
+ mSliderColor = res.getColor(R.color.slider_line_color);
mBarPaint1.setStyle(Paint.Style.FILL);
@@ -83,13 +86,14 @@ public class ColorOpacityView extends View implements ColorListener {
}
private void makeCheckPaint(){
- int[] colors = new int[16 * 16];
+ int imgdim = mCheckDim*2;
+ int[] colors = new int[imgdim * imgdim];
for (int i = 0; i < colors.length; i++) {
- int y = i / (16 * 8);
- int x = (i / 8) % 2;
+ int y = i / (imgdim * mCheckDim);
+ int x = (i / mCheckDim) % 2;
colors[i] = (x == y) ? 0xFFAAAAAA : 0xFF444444;
}
- Bitmap bitmap = Bitmap.createBitmap(colors, 16, 16, Bitmap.Config.ARGB_8888);
+ Bitmap bitmap = Bitmap.createBitmap(colors, imgdim, imgdim, Bitmap.Config.ARGB_8888);
BitmapShader bs = new BitmapShader(bitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
mCheckPaint = new Paint();
mCheckPaint.setShader(bs);
diff --git a/src/com/android/gallery3d/filtershow/colorpicker/ColorPickerDialog.java b/src/com/android/gallery3d/filtershow/colorpicker/ColorPickerDialog.java
index 27a127ce8..ff36f5aa8 100644
--- a/src/com/android/gallery3d/filtershow/colorpicker/ColorPickerDialog.java
+++ b/src/com/android/gallery3d/filtershow/colorpicker/ColorPickerDialog.java
@@ -18,23 +18,29 @@ package com.android.gallery3d.filtershow.colorpicker;
import android.app.Dialog;
import android.content.Context;
+import android.content.res.Configuration;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.util.DisplayMetrics;
import android.view.View;
+import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
+import android.widget.ImageButton;
import android.widget.ToggleButton;
import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.FilterShowActivity;
+import com.android.photos.views.GalleryThumbnailView;
public class ColorPickerDialog extends Dialog {
ToggleButton mSelectedButton;
- GradientDrawable mSelectRect;
ColorHueView mColorHueView;
ColorSVRectView mColorSVRectView;
ColorOpacityView mColorOpacityView;
+ ColorCompareView mColorCompareView;
+
float[] mHSVO = new float[4]; // hue=0..360, sat & val opacity = 0...1
public ColorPickerDialog(Context context, final ColorListener cl) {
@@ -50,48 +56,56 @@ public class ColorPickerDialog extends Dialog {
mColorHueView = (ColorHueView) findViewById(R.id.ColorHueView);
mColorSVRectView = (ColorSVRectView) findViewById(R.id.colorRectView);
mColorOpacityView = (ColorOpacityView) findViewById(R.id.colorOpacityView);
+ mColorCompareView = (ColorCompareView) findViewById(R.id.btnSelect);
+
float[] hsvo = new float[] {
123, .9f, 1, 1 };
- mSelectRect = (GradientDrawable) getContext()
- .getResources().getDrawable(R.drawable.filtershow_color_picker_roundrect);
- Button selButton = (Button) findViewById(R.id.btnSelect);
- selButton.setCompoundDrawablesWithIntrinsicBounds(null, null, mSelectRect, null);
- Button sel = (Button) findViewById(R.id.btnSelect);
+ ImageButton apply = (ImageButton) findViewById(R.id.applyColorPick);
+ ImageButton cancel = (ImageButton) findViewById(R.id.cancelColorPick);
- sel.setOnClickListener(new View.OnClickListener() {
+ apply.setOnClickListener(new View.OnClickListener() {
@Override
- public void onClick(View v) {
+ public void onClick(View view) {
+ cl.setColor(mHSVO);
+ ColorPickerDialog.this.dismiss();
+ }
+ });
+ cancel.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
ColorPickerDialog.this.dismiss();
- if (cl != null) {
- cl.setColor(mHSVO);
- }
}
});
+ ColorListener [] c = {mColorCompareView,mColorSVRectView,mColorOpacityView,mColorHueView};
+ for (int i = 0; i < c.length; i++) {
+ c[i].setColor(hsvo);
+ for (int j = 0; j < c.length; j++) {
+ if (i==j) {
+ continue;
+ }
+ c[i].addColorListener(c[j]);
+ }
+ }
- mColorSVRectView.setColor(hsvo);
- mColorOpacityView.setColor(hsvo);
- mColorHueView.setColor(hsvo);
- mColorHueView.addColorListener(mColorSVRectView);
- mColorSVRectView.addColorListener(mColorHueView);
- mColorHueView.addColorListener(mColorOpacityView);
- mColorSVRectView.addColorListener(mColorOpacityView);
- mColorOpacityView.addColorListener(mColorSVRectView);
- mColorOpacityView.addColorListener(mColorHueView);
ColorListener colorListener = new ColorListener(){
-
@Override
public void setColor(float[] hsvo) {
System.arraycopy(hsvo, 0, mHSVO, 0, mHSVO.length);
int color = Color.HSVToColor(hsvo);
- mSelectRect.setColor(color);
setButtonColor(mSelectedButton, hsvo);
}
+
+ @Override
+ public void addColorListener(ColorListener l) {
+ }
};
- mColorOpacityView.addColorListener(colorListener);
- mColorHueView.addColorListener(colorListener);
- mColorSVRectView.addColorListener(colorListener);
+ for (int i = 0; i < c.length; i++) {
+ c[i].addColorListener(colorListener);
+ }
+ setOnShowListener((FilterShowActivity) context);
+ setOnDismissListener((FilterShowActivity) context);
}
void toggleClick(ToggleButton v, int[] buttons, boolean isChecked) {
@@ -118,11 +132,15 @@ public class ColorPickerDialog extends Dialog {
csv.setColor(hsv);
}
+ public void setOrigColor(float[] hsvo) {
+ mColorCompareView.setOrigColor(hsvo);
+ }
public void setColor(float[] hsvo) {
mColorOpacityView.setColor(hsvo);
mColorHueView.setColor(hsvo);
mColorSVRectView.setColor(hsvo);
+ mColorCompareView.setColor(hsvo);
}
private void setButtonColor(ToggleButton button, float[] hsv) {
diff --git a/src/com/android/gallery3d/filtershow/colorpicker/ColorSVRectView.java b/src/com/android/gallery3d/filtershow/colorpicker/ColorSVRectView.java
index b529b433f..fb8b4fcb4 100644
--- a/src/com/android/gallery3d/filtershow/colorpicker/ColorSVRectView.java
+++ b/src/com/android/gallery3d/filtershow/colorpicker/ColorSVRectView.java
@@ -86,6 +86,11 @@ public class ColorSVRectView extends View implements ColorListener {
fillBitmap();
}
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ super.onMeasure(widthMeasureSpec, widthMeasureSpec);
+ }
+
void fillBitmap() {
int w = mBitmap.getWidth();
int h = mBitmap.getHeight();
diff --git a/src/com/android/gallery3d/filtershow/controller/ColorChooser.java b/src/com/android/gallery3d/filtershow/controller/ColorChooser.java
index 7fcffd7d7..f9f29bccc 100644
--- a/src/com/android/gallery3d/filtershow/controller/ColorChooser.java
+++ b/src/com/android/gallery3d/filtershow/controller/ColorChooser.java
@@ -164,10 +164,14 @@ public class ColorChooser implements Control {
public void setColor(float[] hsvo) {
changeSelectedColor(hsvo);
}
+ @Override
+ public void addColorListener(ColorListener l) {
+ }
};
ColorPickerDialog cpd = new ColorPickerDialog(mContext, cl);
float[] c = (float[]) mButton[mSelectedButton].getTag();
cpd.setColor(Arrays.copyOf(c, 4));
+ cpd.setOrigColor(Arrays.copyOf(c, 4));
cpd.show();
}
}
diff --git a/src/com/android/gallery3d/filtershow/controller/SliderBrightness.java b/src/com/android/gallery3d/filtershow/controller/SliderBrightness.java
index 6dc86882d..2929d6891 100644
--- a/src/com/android/gallery3d/filtershow/controller/SliderBrightness.java
+++ b/src/com/android/gallery3d/filtershow/controller/SliderBrightness.java
@@ -52,6 +52,9 @@ public class SliderBrightness implements Control {
mParameter.setValue((int)(255* hsvo[3]));
mEditor.commitLocalRepresentation();
}
+ @Override
+ public void addColorListener(ColorListener l) {
+ }
});
}
diff --git a/src/com/android/gallery3d/filtershow/controller/SliderHue.java b/src/com/android/gallery3d/filtershow/controller/SliderHue.java
index a550afd79..1820ce234 100644
--- a/src/com/android/gallery3d/filtershow/controller/SliderHue.java
+++ b/src/com/android/gallery3d/filtershow/controller/SliderHue.java
@@ -63,6 +63,9 @@ public class SliderHue implements Control {
mParameter.setValue((int)(360* hsvo[3]));
mEditor.commitLocalRepresentation();
}
+ @Override
+ public void addColorListener(ColorListener l) {
+ }
});
}
diff --git a/src/com/android/gallery3d/filtershow/controller/SliderOpacity.java b/src/com/android/gallery3d/filtershow/controller/SliderOpacity.java
index cd21e9b76..2a34aad2f 100644
--- a/src/com/android/gallery3d/filtershow/controller/SliderOpacity.java
+++ b/src/com/android/gallery3d/filtershow/controller/SliderOpacity.java
@@ -53,6 +53,9 @@ public class SliderOpacity implements Control {
mParameter.setValue((int) (255 * hsvo[3]));
mEditor.commitLocalRepresentation();
}
+ @Override
+ public void addColorListener(ColorListener l) {
+ }
});
}
diff --git a/src/com/android/gallery3d/filtershow/controller/SliderSaturation.java b/src/com/android/gallery3d/filtershow/controller/SliderSaturation.java
index 1f2b3fbd8..6f3ae6e4f 100644
--- a/src/com/android/gallery3d/filtershow/controller/SliderSaturation.java
+++ b/src/com/android/gallery3d/filtershow/controller/SliderSaturation.java
@@ -54,6 +54,9 @@ public class SliderSaturation implements Control {
mParameter.setValue((int) (255 * hsvo[3]));
mEditor.commitLocalRepresentation();
}
+ @Override
+ public void addColorListener(ColorListener l) {
+ }
});
}
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorColorBorderTabletUI.java b/src/com/android/gallery3d/filtershow/editors/EditorColorBorderTabletUI.java
index 518c56af0..0b2ae37a0 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorColorBorderTabletUI.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorColorBorderTabletUI.java
@@ -29,6 +29,7 @@ import android.widget.SeekBar;
import android.widget.TextView;
import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.colorpicker.ColorCompareView;
import com.android.gallery3d.filtershow.colorpicker.ColorHueView;
import com.android.gallery3d.filtershow.colorpicker.ColorListener;
import com.android.gallery3d.filtershow.colorpicker.ColorOpacityView;
@@ -48,6 +49,7 @@ public class EditorColorBorderTabletUI {
private ColorHueView mHueView;
private ColorSVRectView mSatValView;
private ColorOpacityView mOpacityView;
+ private ColorCompareView mColorCompareView;
private int[] mBasColors;
private int mSelected;
@@ -98,6 +100,7 @@ public class EditorColorBorderTabletUI {
mCBCornerSizeSeekBar = (SeekBar) lp.findViewById(R.id.colorBorderCornerSizeSeekBar);
mCBCornerSizeValue = (TextView) lp.findViewById(R.id.colorBorderCornerValue);
mCBSizeSeekBar = (SeekBar) lp.findViewById(R.id.colorBorderSizeSeekBar);
+
mCBSizeValue = (TextView) lp.findViewById(R.id.colorBorderSizeValue);
setupClearButton(lp);
setupCBSizeSeekBar(lp);
@@ -200,18 +203,32 @@ public class EditorColorBorderTabletUI {
mHueView.setColor(hsvo);
mSatValView.setColor(hsvo);
mOpacityView.setColor(hsvo);
+ mColorCompareView.setOrigColor(hsvo);
+
}
});
}
mHueView = (ColorHueView) lp.findViewById(R.id.ColorHueView);
mSatValView = (ColorSVRectView) lp.findViewById(R.id.colorRectView);
mOpacityView = (ColorOpacityView) lp.findViewById(R.id.colorOpacityView);
- mHueView.addColorListener(mSatValView);
- mSatValView.addColorListener(mHueView);
- mHueView.addColorListener(mOpacityView);
- mSatValView.addColorListener(mOpacityView);
- mOpacityView.addColorListener(mSatValView);
- mOpacityView.addColorListener(mHueView);
+ mColorCompareView = (ColorCompareView) lp.findViewById(R.id.btnSelect);
+
+ float[] hsvo = new float[4];
+ Color.colorToHSV(mBasColors[0], hsvo);
+ hsvo[3] = (0xFF & (mBasColors[0] >> 24)) / (float) 255;
+ mColorCompareView.setOrigColor(hsvo);
+
+ ColorListener[] colorViews = {mHueView, mSatValView, mOpacityView, mColorCompareView};
+ for (int i = 0; i < colorViews.length; i++) {
+ colorViews[i].setColor(hsvo);
+ for (int j = 0; j < colorViews.length; j++) {
+ if (i == j) {
+ continue;
+ }
+ colorViews[i].addColorListener(colorViews[j]);
+ }
+ }
+
ColorListener colorListener = new ColorListener() {
@Override
public void setColor(float[] hsvo) {
@@ -228,10 +245,14 @@ public class EditorColorBorderTabletUI {
pram.setValue(color);
mEditorDraw.commitLocalRepresentation();
}
+ @Override
+ public void addColorListener(ColorListener l) {
+ }
};
- mHueView.addColorListener(colorListener);
- mSatValView.addColorListener(colorListener);
- mOpacityView.addColorListener(colorListener);
+
+ for (int i = 0; i < colorViews.length; i++) {
+ colorViews[i].addColorListener(colorListener);
+ }
}
private void resetBorders() {
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorDrawTabletUI.java b/src/com/android/gallery3d/filtershow/editors/EditorDrawTabletUI.java
index 01fd9ed34..f4aa2ac90 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorDrawTabletUI.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorDrawTabletUI.java
@@ -32,6 +32,7 @@ import android.widget.SeekBar;
import android.widget.TextView;
import com.android.gallery3d.R;
+import com.android.gallery3d.filtershow.colorpicker.ColorCompareView;
import com.android.gallery3d.filtershow.colorpicker.ColorHueView;
import com.android.gallery3d.filtershow.colorpicker.ColorListener;
import com.android.gallery3d.filtershow.colorpicker.ColorOpacityView;
@@ -55,6 +56,7 @@ public class EditorDrawTabletUI {
private ColorHueView mHueView;
private ColorSVRectView mSatValView;
private ColorOpacityView mOpacityView;
+ private ColorCompareView mColorCompareView;
private int[] mBasColors;
private int mSelected;
@@ -72,8 +74,9 @@ public class EditorDrawTabletUI {
mRep = rep;
BasicParameterInt size;
size = (BasicParameterInt) mRep.getParam(FilterDrawRepresentation.PARAM_SIZE);
- mdrawSizeSeekBar.setProgress(size.getDefaultValue());
mdrawSizeSeekBar.setMax(size.getMaximum() - size.getMinimum());
+ mdrawSizeSeekBar.setProgress(size.getValue());
+
ParameterColor color;
color = (ParameterColor) mRep.getParam(FilterDrawRepresentation.PARAM_COLOR);
color.setValue(mBasColors[mSelectedColorButton]);
@@ -183,7 +186,7 @@ public class EditorDrawTabletUI {
public void onClick(View arg0) {
mSelectedColorButton = buttonNo;
- float[] hsvo = Arrays.copyOf((float[]) mColorButton[buttonNo].getTag(),4);
+ float[] hsvo = Arrays.copyOf((float[]) mColorButton[buttonNo].getTag(), 4);
resetBorders();
if (mRep == null) {
return;
@@ -195,18 +198,33 @@ public class EditorDrawTabletUI {
mHueView.setColor(hsvo);
mSatValView.setColor(hsvo);
mOpacityView.setColor(hsvo);
+ mColorCompareView.setColor(hsvo);
+ mColorCompareView.setOrigColor(hsvo);
}
});
}
+
mHueView = (ColorHueView) lp.findViewById(R.id.ColorHueView);
mSatValView = (ColorSVRectView) lp.findViewById(R.id.colorRectView);
mOpacityView = (ColorOpacityView) lp.findViewById(R.id.colorOpacityView);
- mHueView.addColorListener(mSatValView);
- mSatValView.addColorListener(mHueView);
- mHueView.addColorListener(mOpacityView);
- mSatValView.addColorListener(mOpacityView);
- mOpacityView.addColorListener(mSatValView);
- mOpacityView.addColorListener(mHueView);
+ mColorCompareView = (ColorCompareView) lp.findViewById(R.id.btnSelect);
+
+ float[] hsvo = new float[4];
+ Color.colorToHSV(mBasColors[0], hsvo);
+ hsvo[3] = (0xFF & (mBasColors[0] >> 24)) / (float) 255;
+
+ mColorCompareView.setOrigColor(hsvo);
+ ColorListener[] colorViews = {mHueView, mSatValView, mOpacityView, mColorCompareView};
+ for (int i = 0; i < colorViews.length; i++) {
+ colorViews[i].setColor(hsvo);
+
+ for (int j = 0; j < colorViews.length; j++) {
+ if (i == j) {
+ continue;
+ }
+ colorViews[i].addColorListener(colorViews[j]);
+ }
+ }
ColorListener colorListener = new ColorListener() {
@Override
@@ -214,7 +232,7 @@ public class EditorDrawTabletUI {
int color = Color.HSVToColor((int) (hsvo[3] * 255), hsvo);
Button b = mColorButton[mSelectedColorButton];
float[] f = (float[]) b.getTag();
- System.arraycopy(hsvo,0,f,0,4);
+ System.arraycopy(hsvo, 0, f, 0, 4);
mBasColors[mSelectedColorButton] = color;
GradientDrawable sd = ((GradientDrawable) b.getBackground());
sd.setColor(color);
@@ -224,10 +242,16 @@ public class EditorDrawTabletUI {
pram.setValue(color);
mEditorDraw.commitLocalRepresentation();
}
+
+ @Override
+ public void addColorListener(ColorListener l) {
+ }
};
- mHueView.addColorListener(colorListener);
- mSatValView.addColorListener(colorListener);
- mOpacityView.addColorListener(colorListener);
+
+ for (int i = 0; i < colorViews.length; i++) {
+ colorViews[i].addColorListener(colorListener);
+ }
+
}
public void resetStyle() {
diff --git a/src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java b/src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java
index bcdd90a43..48d3d9077 100644
--- a/src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java
+++ b/src/com/android/gallery3d/filtershow/filters/FilterDrawRepresentation.java
@@ -45,7 +45,7 @@ public class FilterDrawRepresentation extends FilterRepresentation {
public static final int PARAM_SIZE = 0;
public static final int PARAM_STYLE = 1;
public static final int PARAM_COLOR = 2;
- private BasicParameterInt mParamSize = new BasicParameterInt(PARAM_SIZE, 20, 2, 300);
+ private BasicParameterInt mParamSize = new BasicParameterInt(PARAM_SIZE, 30, 2, 300);
private BasicParameterStyle mParamStyle = new BasicParameterStyle(PARAM_STYLE, 5);
public static int DEFAULT_MENU_COLOR1 = Color.RED & 0x80FFFFFF;
public static int DEFAULT_MENU_COLOR2 = Color.GREEN & 0x80FFFFFF;
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java b/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java
index 0fdac1c09..795a24781 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java
@@ -244,20 +244,11 @@ public class ImageDraw extends ImageShow {
byte type = mTmpStrokData.mType;
float radius = mTmpStrokData.mRadius;
mFRep.fillStrokeParameters(mTmpStrokData);
- if (type != mTmpStrokData.mType || radius != mTmpStrokData.mRadius) {
- mBitmap = getBrush(mEditorDraw.getBrushIcon(mTmpStrokData.mType));
- float size = mRotateToScreen.mapRadius(mTmpStrokData.mRadius) * 2;
- mBitmap = createScaledBitmap(mBitmap, (int) size, (int) size, true);
- }
- if (color == mTmpStrokData.mColor
- && type == mTmpStrokData.mType
- && radius == mTmpStrokData.mRadius) {
- return;
+ if (radius != mTmpStrokData.mRadius) {
+ mTimeout = DISPLAY_TIME + System.currentTimeMillis();
+ scheduleWakeup(DISPLAY_TIME);
}
-
- mTimeout = DISPLAY_TIME + System.currentTimeMillis();
- scheduleWakeup(DISPLAY_TIME);
}
public void drawLook(Canvas canvas) {
@@ -269,28 +260,22 @@ public class ImageDraw extends ImageShow {
int centerx = cw / 2;
int centery = ch / 2;
- mFRep.fillStrokeParameters(mTmpStrokData);
+// mFRep.fillStrokeParameters(mTmpStrokData);
mIconPaint.setAntiAlias(true);
- mIconPaint.setColor(mTmpStrokData.mColor);
-
- mIconPaint.setColorFilter(new PorterDuffColorFilter(mTmpStrokData.mColor,
- PorterDuff.Mode.MULTIPLY));
+ mIconPaint.setStyle(Paint.Style.STROKE);
float rad = mRotateToScreen.mapRadius(mTmpStrokData.mRadius);
+
RectF rec = new RectF();
- rec.set(centerx - mDisplayBorder - rad,
- centery - mDisplayBorder - rad,
- centerx + mDisplayBorder + rad,
- centery + mDisplayBorder + rad);
- mShadow.setBounds((int) (mBorderShadowSize + rec.left),
- (int) (mBorderShadowSize + rec.top),
- (int) (mBorderShadowSize + rec.right),
- (int) (mBorderShadowSize + rec.bottom));
- mShadow.draw(canvas);
- canvas.drawRoundRect(rec, mDisplayRound, mDisplayRound, mCheckerdPaint);
- canvas.drawRoundRect(rec, mDisplayRound, mDisplayRound, mBorderPaint);
- canvas.drawBitmap(mBitmap,
- centerx - mBitmap.getWidth() / 2,
- centery - mBitmap.getHeight() / 2, mIconPaint);
+ rec.set(centerx - rad,
+ centery - rad,
+ centerx + rad,
+ centery + rad);
+ mIconPaint.setColor(Color.BLACK);
+ mIconPaint.setStrokeWidth(5);
+ canvas.drawArc(rec, 0, 360, true, mIconPaint);
+ mIconPaint.setColor(Color.WHITE);
+ mIconPaint.setStrokeWidth(3);
+ canvas.drawArc(rec, 0, 360, true, mIconPaint);
}
@Override