summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/drawable-hdpi/ic_action_overflow.pngbin0 -> 2824 bytes
-rw-r--r--res/drawable-mdpi/ic_action_overflow.pngbin0 -> 2823 bytes
-rw-r--r--res/drawable-xhdpi/ic_action_overflow.pngbin0 -> 2827 bytes
-rw-r--r--res/drawable/filtershow_color_picker_circle.xml6
-rw-r--r--res/layout-land/filtershow_color_border_ui.xml29
-rw-r--r--res/layout-land/filtershow_draw_ui.xml103
-rw-r--r--res/layout/filtershow_color_picker.xml64
-rw-r--r--res/layout/filtershow_control_color_chooser.xml106
-rw-r--r--res/layout/filtershow_control_style_chooser.xml3
-rw-r--r--res/values-xlarge/filtershow_values.xml3
-rw-r--r--res/values/filtershow_values.xml12
-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
28 files changed, 568 insertions, 223 deletions
diff --git a/res/drawable-hdpi/ic_action_overflow.png b/res/drawable-hdpi/ic_action_overflow.png
new file mode 100644
index 000000000..18bc4c5e8
--- /dev/null
+++ b/res/drawable-hdpi/ic_action_overflow.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_action_overflow.png b/res/drawable-mdpi/ic_action_overflow.png
new file mode 100644
index 000000000..b58b7c96d
--- /dev/null
+++ b/res/drawable-mdpi/ic_action_overflow.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_action_overflow.png b/res/drawable-xhdpi/ic_action_overflow.png
new file mode 100644
index 000000000..799c35caa
--- /dev/null
+++ b/res/drawable-xhdpi/ic_action_overflow.png
Binary files differ
diff --git a/res/drawable/filtershow_color_picker_circle.xml b/res/drawable/filtershow_color_picker_circle.xml
index 915425222..433df4800 100644
--- a/res/drawable/filtershow_color_picker_circle.xml
+++ b/res/drawable/filtershow_color_picker_circle.xml
@@ -16,11 +16,11 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
- <size android:width="20dp" android:height="20dp"/>
+ <size android:width="16dp" android:height="16dp"/>
<corners
- android:radius="10dp" />
+ android:radius="0dp" />
<solid android:color="@color/red"/>
- <stroke android:width="2dp"
+ <stroke android:width="0dp"
android:color="#ff000000"/>
</shape>
diff --git a/res/layout-land/filtershow_color_border_ui.xml b/res/layout-land/filtershow_color_border_ui.xml
index f16ea2cea..e65c3485a 100644
--- a/res/layout-land/filtershow_color_border_ui.xml
+++ b/res/layout-land/filtershow_color_border_ui.xml
@@ -132,25 +132,36 @@
android:layout_marginLeft="8dip"
android:id="@+id/textView"/>
- <com.android.gallery3d.filtershow.colorpicker.ColorOpacityView
- android:id="@+id/colorOpacityView"
+
+ <com.android.gallery3d.filtershow.colorpicker.ColorCompareView
+ android:id="@+id/btnSelect"
android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"/>
+ android:layout_height="32dp"
+ android:layout_marginLeft="18dp"
+ android:layout_marginRight="18dp"
+ android:layout_marginTop="0dp"
+ android:layout_marginBottom="0dp"
+ />
<com.android.gallery3d.filtershow.colorpicker.ColorSVRectView
android:id="@+id/colorRectView"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="4"
+ android:layout_width="@dimen/draw_ui_width"
+ android:layout_height="@dimen/draw_ui_width"
+ android:layout_gravity="center"
+ android:layout_marginTop="8dp"
android:layout_marginRight="1dp"/>
<com.android.gallery3d.filtershow.colorpicker.ColorHueView
android:id="@+id/ColorHueView"
android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"/>
+ android:layout_marginTop="0dp"
+ android:layout_height="32dp" />
+ <com.android.gallery3d.filtershow.colorpicker.ColorOpacityView
+ android:id="@+id/colorOpacityView"
+ android:layout_width="match_parent"
+ android:layout_marginTop="24dp"
+ android:layout_height="32dp" />
</LinearLayout>
</FrameLayout>
diff --git a/res/layout-land/filtershow_draw_ui.xml b/res/layout-land/filtershow_draw_ui.xml
index b98a87c5c..5e0a32725 100644
--- a/res/layout-land/filtershow_draw_ui.xml
+++ b/res/layout-land/filtershow_draw_ui.xml
@@ -42,13 +42,15 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
- android:text="@string/draw_clear"/>
+ android:text="@string/draw_clear"
+ android:visibility="gone"/>
<GridLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:columnCount="2"
+ android:layout_marginBottom="3dp"
android:orientation="horizontal">
<TextView
@@ -67,6 +69,7 @@
android:id="@+id/drawSizeSeekBar"
android:layout_width="match_parent"
android:layout_column="0"
+ android:progress="20"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
style="@style/FilterShowSlider"/>
@@ -93,8 +96,10 @@
<LinearLayout
android:id="@+id/colorPicker"
android:layout_width="match_parent"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
android:orientation="vertical"
+ android:layout_gravity="bottom"
+ android:layout_marginBottom="8dp"
android:visibility="gone">
<TextView
@@ -102,26 +107,38 @@
android:layout_height="wrap_content"
android:text="@string/draw_color"
android:layout_marginLeft="8dip"
- android:id="@+id/textView"/>
+ android:id="@+id/textView"
+ android:visibility="gone"/>
- <com.android.gallery3d.filtershow.colorpicker.ColorOpacityView
- android:id="@+id/colorOpacityView"
+ <com.android.gallery3d.filtershow.colorpicker.ColorCompareView
+ android:id="@+id/btnSelect"
android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"/>
+ android:layout_height="32dp"
+ android:layout_marginLeft="18dp"
+ android:layout_marginRight="18dp"
+ android:layout_marginTop="0dp"
+ android:layout_marginBottom="0dp"
+ />
<com.android.gallery3d.filtershow.colorpicker.ColorSVRectView
android:id="@+id/colorRectView"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="4"
+ android:layout_width="@dimen/draw_ui_width"
+ android:layout_height="@dimen/draw_ui_width"
+ android:layout_gravity="center"
+ android:layout_marginTop="8dp"
android:layout_marginRight="1dp"/>
<com.android.gallery3d.filtershow.colorpicker.ColorHueView
android:id="@+id/ColorHueView"
android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"/>
+ android:layout_marginTop="0dp"
+ android:layout_height="32dp" />
+
+ <com.android.gallery3d.filtershow.colorpicker.ColorOpacityView
+ android:id="@+id/colorOpacityView"
+ android:layout_width="match_parent"
+ android:layout_marginTop="24dp"
+ android:layout_height="32dp" />
</LinearLayout>
</FrameLayout>
@@ -135,68 +152,70 @@
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp">
- <HorizontalScrollView
- android:id="@+id/scrollList"
- android:layout_width="0dp"
- android:layout_weight="5"
- android:layout_height="match_parent"
- android:scrollbars="none">
<LinearLayout
android:id="@+id/listColors"
+ android:layout_weight="5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/draw_color_button01"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
+ android:layout_width="0dp"
android:layout_weight="1"
+ android:layout_height="wrap_content"
android:background="@drawable/filtershow_color_picker_circle"
- android:layout_margin="2dp"/>
+ android:layout_marginRight="4dp"/>
<Button
android:id="@+id/draw_color_button02"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
+ android:layout_width="0dp"
android:layout_weight="1"
+ android:layout_height="wrap_content"
android:background="@drawable/filtershow_color_picker_circle"
- android:layout_margin="2dp"/>
+ android:layout_marginRight="4dp"/>
<Button
android:id="@+id/draw_color_button03"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
+ android:layout_width="0dp"
android:layout_weight="1"
+ android:layout_height="wrap_content"
android:background="@drawable/filtershow_color_picker_circle"
- android:layout_margin="2dp"/>
+ android:layout_marginRight="4dp"/>
<Button
android:id="@+id/draw_color_button04"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
+ android:layout_width="0dp"
android:layout_weight="1"
+ android:layout_height="wrap_content"
android:background="@drawable/filtershow_color_picker_circle"
- android:layout_margin="2dp"/>
+ android:layout_marginRight="4dp"/>
<Button
android:id="@+id/draw_color_button05"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
+ android:layout_width="0dp"
android:layout_weight="1"
+ android:layout_height="wrap_content"
android:background="@drawable/filtershow_color_picker_circle"
- android:layout_margin="2dp"/>
+ android:layout_marginRight="4dp"/>
</LinearLayout>
- </HorizontalScrollView>
-
- <Button
- android:id="@+id/draw_color_popupbutton"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:background="@android:drawable/ic_menu_more"
- android:layout_margin="1dp"/>
+
+ <FrameLayout
+ android:background="@color/background_main_toolbar"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center">
+ <Button
+ android:id="@+id/draw_color_popupbutton"
+ android:layout_width="48dp"
+ android:layout_gravity="center"
+ android:layout_height="wrap_content"
+ android:background="@drawable/ic_action_overflow"
+ />
+ </FrameLayout>
+ <!--@drawable/ic_action_overflow
+ @android:drawable/ic_menu_more-->
</LinearLayout>
</LinearLayout>
diff --git a/res/layout/filtershow_color_picker.xml b/res/layout/filtershow_color_picker.xml
index ab264104c..e2af5bd2b 100644
--- a/res/layout/filtershow_color_picker.xml
+++ b/res/layout/filtershow_color_picker.xml
@@ -16,7 +16,8 @@
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:background="@color/background_main_toolbar">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
@@ -25,31 +26,64 @@
android:layout_height="match_parent"
android:background="@color/default_background">
- <com.android.gallery3d.filtershow.colorpicker.ColorOpacityView
- android:id="@+id/colorOpacityView"
+ <com.android.gallery3d.filtershow.colorpicker.ColorCompareView
+ android:id="@+id/btnSelect"
android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"/>
-
+ android:layout_height="32dp"
+ android:layout_marginLeft="20dp"
+ android:layout_marginRight="20dp"
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="0dp"
+ />
<com.android.gallery3d.filtershow.colorpicker.ColorSVRectView
android:id="@+id/colorRectView"
android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="4"
+ android:layout_height="256dp"
+ android:layout_marginTop="0dp"
android:layout_marginRight="1dp"/>
<com.android.gallery3d.filtershow.colorpicker.ColorHueView
android:id="@+id/ColorHueView"
android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"/>
+ android:layout_marginTop="0dp"
+ android:layout_height="32dp" />
- <Button
- android:id="@+id/btnSelect"
+ <com.android.gallery3d.filtershow.colorpicker.ColorOpacityView
+ android:id="@+id/colorOpacityView"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/color_pick_select"
- android:layout_margin="14dp"/>
+ android:layout_marginTop="24dp"
+ android:layout_height="32dp" />
+ <LinearLayout android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="4dp">
+ <ImageButton
+ android:id="@+id/cancelColorPick"
+ android:layout_width="wrap_content"
+ android:layout_height="fill_parent"
+ android:layout_gravity="left|center_vertical"
+ android:background="@android:color/transparent"
+ android:layout_weight=".1"
+ android:gravity="center"
+ android:src="@drawable/ic_menu_cancel_holo_light"
+ android:textSize="18dip"/>
+
+ <ImageView
+ android:layout_width="2dp"
+ android:layout_height="fill_parent"
+ android:src="@drawable/filtershow_vertical_bar"/>
+ <ImageButton
+ android:id="@+id/applyColorPick"
+ android:layout_width="wrap_content"
+ android:layout_height="fill_parent"
+ android:layout_gravity="right|center_vertical"
+ android:layout_weight=".1"
+ android:background="@android:color/transparent"
+ android:gravity="center"
+ android:src="@drawable/ic_menu_done_holo_light"
+ android:textSize="18dip"/>
+ </LinearLayout>
</LinearLayout>
+
</LinearLayout> \ No newline at end of file
diff --git a/res/layout/filtershow_control_color_chooser.xml b/res/layout/filtershow_control_color_chooser.xml
index 706402c2e..5bfe46031 100644
--- a/res/layout/filtershow_control_color_chooser.xml
+++ b/res/layout/filtershow_control_color_chooser.xml
@@ -20,63 +20,67 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
- <HorizontalScrollView
- android:id="@+id/scrollList"
+ <LinearLayout
+ android:id="@+id/listColors"
+ android:layout_weight="5"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <Button
+ android:id="@+id/draw_color_button01"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:background="@drawable/filtershow_color_picker_circle"
+ android:layout_marginRight="4dp"/>
+
+ <Button
+ android:id="@+id/draw_color_button02"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:background="@drawable/filtershow_color_picker_circle"
+ android:layout_marginRight="4dp"/>
+
+ <Button
+ android:id="@+id/draw_color_button03"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:background="@drawable/filtershow_color_picker_circle"
+ android:layout_marginRight="4dp"/>
+
+ <Button
+ android:id="@+id/draw_color_button04"
android:layout_width="0dp"
- android:layout_weight="5"
- android:layout_height="match_parent"
- android:scrollbars="none" >
+ android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:background="@drawable/filtershow_color_picker_circle"
+ android:layout_marginRight="4dp"/>
- <LinearLayout
- android:id="@+id/listStyles"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:orientation="horizontal" >
+ <Button
+ android:id="@+id/draw_color_button05"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:background="@drawable/filtershow_color_picker_circle"
+ android:layout_marginRight="4dp"/>
- <Button
- android:id="@+id/draw_color_button01"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:background="@drawable/filtershow_color_picker_circle"
- android:layout_margin="2dp" />
- <Button
- android:id="@+id/draw_color_button02"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:background="@drawable/filtershow_color_picker_circle"
- android:layout_margin="2dp" />
- <Button
- android:id="@+id/draw_color_button03"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:background="@drawable/filtershow_color_picker_circle"
- android:layout_margin="2dp" />
- <Button
- android:id="@+id/draw_color_button04"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:background="@drawable/filtershow_color_picker_circle"
- android:layout_margin="2dp" />
- <Button
- android:id="@+id/draw_color_button05"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:background="@drawable/filtershow_color_picker_circle"
- android:layout_margin="2dp" />
+ </LinearLayout>
- </LinearLayout>
- </HorizontalScrollView>
+ <FrameLayout
+ android:background="@color/background_main_toolbar"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center">
<Button
android:id="@+id/draw_color_popupbutton"
- android:layout_width="@dimen/draw_style_icon_dim"
- android:layout_height="@dimen/draw_style_icon_dim"
- android:background="@android:drawable/ic_menu_more"
- android:layout_margin="1dp"
+ android:layout_width="wrap_content"
+ android:layout_gravity="center"
+ android:layout_height="wrap_content"
+ android:background="@drawable/ic_action_overflow"
/>
+ </FrameLayout>
</LinearLayout>
diff --git a/res/layout/filtershow_control_style_chooser.xml b/res/layout/filtershow_control_style_chooser.xml
index b0426e3d1..9588ea208 100644
--- a/res/layout/filtershow_control_style_chooser.xml
+++ b/res/layout/filtershow_control_style_chooser.xml
@@ -18,7 +18,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.example.imagefilterharness"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
+ android:layout_height="32dp"
android:orientation="horizontal" >
<HorizontalScrollView
android:id="@+id/scrollList"
@@ -32,6 +32,7 @@
android:layout_height="match_parent"
android:orientation="horizontal" >
</LinearLayout>
+
</HorizontalScrollView>
</LinearLayout>
diff --git a/res/values-xlarge/filtershow_values.xml b/res/values-xlarge/filtershow_values.xml
index c6fe3996b..6d0906a50 100644
--- a/res/values-xlarge/filtershow_values.xml
+++ b/res/values-xlarge/filtershow_values.xml
@@ -29,4 +29,7 @@
<!-- Category Panel Text Size -->
<dimen name="category_panel_margin">4dip</dimen>
+
+ <!-- draw check UI size -->
+ <dimen name="draw_ui_width">350dip</dimen>
</resources> \ No newline at end of file
diff --git a/res/values/filtershow_values.xml b/res/values/filtershow_values.xml
index 0cf723f8f..69eb49dc7 100644
--- a/res/values/filtershow_values.xml
+++ b/res/values/filtershow_values.xml
@@ -51,7 +51,15 @@
<!-- Grad filter minimum touch distance -->
<dimen name="draw_rect_round">10dip</dimen>
- <!-- Grad filter minimum touch distance -->
- <dimen name="draw_style_icon_dim">64dip</dimen>
+ <!-- draw color icon size -->
+ <dimen name="draw_style_icon_dim">42dip</dimen>
+
+ <!-- draw color icon size -->
+ <dimen name="draw_color_icon_dim">42dip</dimen>
+
+ <!-- draw check UI size -->
+ <dimen name="draw_color_check_dim">5dip</dimen>
+ <!-- draw check UI size -->
+ <dimen name="draw_ui_width">192dip</dimen>
</resources> \ No newline at end of file
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