diff options
| author | John Hoford <hoford@google.com> | 2013-09-13 05:08:22 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-09-13 05:08:23 +0000 |
| commit | bc7e9fff7e94bb96fb7fe46080dcde2b81e60817 (patch) | |
| tree | b41b49a02f1c96bf5efec0d41faed47916b888db | |
| parent | 7fa373b0c3143c2c55a0d72487607d5a05c72e1d (diff) | |
| parent | 6125a082a2b5ddc0d34a5198c5a7e826bd77e202 (diff) | |
| download | android_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
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 Binary files differnew file mode 100644 index 000000000..18bc4c5e8 --- /dev/null +++ b/res/drawable-hdpi/ic_action_overflow.png diff --git a/res/drawable-mdpi/ic_action_overflow.png b/res/drawable-mdpi/ic_action_overflow.png Binary files differnew file mode 100644 index 000000000..b58b7c96d --- /dev/null +++ b/res/drawable-mdpi/ic_action_overflow.png diff --git a/res/drawable-xhdpi/ic_action_overflow.png b/res/drawable-xhdpi/ic_action_overflow.png Binary files differnew file mode 100644 index 000000000..799c35caa --- /dev/null +++ b/res/drawable-xhdpi/ic_action_overflow.png 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 |
