From bcb8d2a9b734c38874bfcb54c509fe4fc9bf9b5f Mon Sep 17 00:00:00 2001 From: huangziwei Date: Thu, 19 Jul 2018 15:05:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8DGraffiti->Doodle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 34 +- app/build.gradle | 5 +- app/src/main/AndroidManifest.xml | 2 +- .../MainActivity.java | 26 +- .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 7718 -> 8509 bytes app/src/main/res/drawable/ic_launcher.png | Bin 3418 -> 6231 bytes app/src/main/res/layout/activity_main.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- {graffiti => doodle}/.gitignore | 0 {graffiti => doodle}/build.gradle | 0 {graffiti => doodle}/proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 4 +- .../java/cn/hzw/doodle}/CopyLocation.java | 4 +- .../java/cn/hzw/doodle/DoodleActivity.java | 386 +++++++++--------- .../main/java/cn/hzw/doodle/DoodleBitmap.java | 12 +- .../main/java/cn/hzw/doodle/DoodleColor.java | 28 +- .../java/cn/hzw/doodle/DoodleItemBase.java | 56 +-- .../doodle/DoodleOnTouchGestureListener.java | 236 +++++------ .../java/cn/hzw/doodle/DoodlePaintAttrs.java | 57 +++ .../main/java/cn/hzw/doodle/DoodleParams.java | 26 +- .../main/java/cn/hzw/doodle/DoodlePath.java | 48 +-- .../main/java/cn/hzw/doodle/DoodlePen.java | 32 +- .../hzw/doodle/DoodleRotatableItemBase.java | 32 +- .../hzw/doodle/DoodleSelectableItemBase.java | 26 +- .../main/java/cn/hzw/doodle/DoodleShape.java | 36 +- .../main/java/cn/hzw/doodle/DoodleText.java | 12 +- .../cn/hzw/doodle/DoodleTouchDetector.java | 8 +- .../main/java/cn/hzw/doodle/DoodleView.java | 298 +++++++------- .../java/cn/hzw/doodle/IDoodleListener.java | 10 +- .../main/java/cn/hzw/doodle/core/IDoodle.java | 60 +-- .../java/cn/hzw/doodle/core/IDoodleColor.java | 19 + .../java/cn/hzw/doodle/core/IDoodleItem.java | 22 +- .../java/cn/hzw/doodle/core/IDoodlePen.java | 16 +- .../doodle/core/IDoodleSelectableItem.java | 4 +- .../java/cn/hzw/doodle/core/IDoodleShape.java | 10 +- .../hzw/doodle/core/IDoodleTouchDetector.java | 4 +- .../hzw/doodle}/dialog/ColorPickerDialog.java | 10 +- .../hzw/doodle}/dialog/DialogController.java | 12 +- .../hzw/doodle}/imagepicker/ImageLoader.java | 6 +- .../imagepicker/ImageSelectorAdapter.java | 10 +- .../imagepicker/ImageSelectorView.java | 8 +- .../java/cn/hzw/doodle}/util/DrawUtil.java | 6 +- .../doodle_bar_background.9.png | Bin .../drawable-xxhdpi/doodle_bar_progress.9.png | Bin .../res/drawable-xxhdpi/doodle_btn_add.png | Bin .../res/drawable-xxhdpi/doodle_btn_back.png | Bin .../res/drawable-xxhdpi/doodle_btn_finish.png | Bin .../res/drawable-xxhdpi/doodle_btn_sub.png | Bin .../res/drawable-xxhdpi/doodle_hide_panel.png | Bin .../doodle_hide_panel_pressed.png | Bin .../doodle_imageselector_image_selected.png | Bin .../doodle_imageselector_loading.9.png | Bin 0 -> 1687 bytes .../res/drawable-xxhdpi/doodle_rotate.png | Bin .../res/drawable-xxhdpi/doodle_shader1.jpg | Bin .../res/drawable-xxhdpi/doodle_shader2.jpg | Bin .../res/drawable-xxhdpi/doodle_shader3.jpg | Bin .../res/drawable-xxhdpi/doodle_shader4.jpg | Bin .../res/drawable-xxhdpi/doodle_shader5.jpg | Bin .../drawable-xxhdpi/doodle_thumb_normal.png | Bin .../drawable-xxhdpi/doodle_thumb_pressed.png | Bin .../res/drawable/doodle_btn_effect_panel.xml | 5 + .../drawable/doodle_btn_effect_rect_line.xml | 6 +- .../doodle_btn_effect_rect_pressed_black.xml | 7 + .../res/drawable/doodle_btn_effect_round.xml | 6 +- ...doodle_btn_effect_round_pressed_yellow.xml | 7 + .../main/res/drawable/doodle_seekbar_bg.xml | 4 +- .../drawable/doodle_shape_circle_normal.xml | 0 .../drawable/doodle_shape_circle_pressed.xml | 2 +- .../doodle_shape_rect_pressed_black.xml | 0 .../doodle_shape_rect_stroke_normal.xml | 0 .../doodle_shape_rect_stroke_pressed.xml | 0 .../res/drawable/doodle_thumb_seekbarr.xml | 6 +- .../layout/doodle_color_selector_dialog.xml | 14 +- .../main/res/layout/doodle_create_bitmap.xml | 2 +- .../main/res/layout/doodle_create_text.xml | 10 +- .../src/main/res/layout/doodle_dialog.xml | 0 .../res/layout/doodle_imageselector_item.xml | 6 +- .../src/main/res/layout/doodle_layout.xml | 74 ++-- .../layout/doodle_layout_image_selector.xml | 2 +- .../src/main/res/layout/doodle_title_bar.xml | 18 +- doodle/src/main/res/values/color.xml | 6 + .../src/main/res/values/dimen.xml | 0 doodle/src/main/res/values/strings.xml | 16 + .../cn/hzw/graffiti/GraffitiPaintAttrs.java | 57 --- .../cn/hzw/graffiti/core/IGraffitiColor.java | 19 - .../graffit_imageselector_loading.9.png | Bin 1094 -> 0 bytes .../drawable/graffiti_btn_effect_panel.xml | 5 - ...graffiti_btn_effect_rect_pressed_black.xml | 7 - ...affiti_btn_effect_round_pressed_yellow.xml | 7 - graffiti/src/main/res/values/color.xml | 6 - graffiti/src/main/res/values/strings.xml | 16 - settings.gradle | 2 +- 92 files changed, 939 insertions(+), 940 deletions(-) rename app/src/main/java/cn/hzw/{graffitidemo => doodledemo}/MainActivity.java (74%) rename {graffiti => doodle}/.gitignore (100%) rename {graffiti => doodle}/build.gradle (100%) rename {graffiti => doodle}/proguard-rules.pro (100%) rename {graffiti => doodle}/src/main/AndroidManifest.xml (85%) rename {graffiti/src/main/java/cn/hzw/graffiti => doodle/src/main/java/cn/hzw/doodle}/CopyLocation.java (97%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiActivity.java => doodle/src/main/java/cn/hzw/doodle/DoodleActivity.java (66%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiBitmap.java => doodle/src/main/java/cn/hzw/doodle/DoodleBitmap.java (75%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiColor.java => doodle/src/main/java/cn/hzw/doodle/DoodleColor.java (76%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiItemBase.java => doodle/src/main/java/cn/hzw/doodle/DoodleItemBase.java (73%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiOnTouchGestureListener.java => doodle/src/main/java/cn/hzw/doodle/DoodleOnTouchGestureListener.java (52%) create mode 100644 doodle/src/main/java/cn/hzw/doodle/DoodlePaintAttrs.java rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiParams.java => doodle/src/main/java/cn/hzw/doodle/DoodleParams.java (85%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiPath.java => doodle/src/main/java/cn/hzw/doodle/DoodlePath.java (59%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiPen.java => doodle/src/main/java/cn/hzw/doodle/DoodlePen.java (67%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiRotatableItemBase.java => doodle/src/main/java/cn/hzw/doodle/DoodleRotatableItemBase.java (67%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiSelectableItemBase.java => doodle/src/main/java/cn/hzw/doodle/DoodleSelectableItemBase.java (80%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiShape.java => doodle/src/main/java/cn/hzw/doodle/DoodleShape.java (55%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiText.java => doodle/src/main/java/cn/hzw/doodle/DoodleText.java (75%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiTouchDetector.java => doodle/src/main/java/cn/hzw/doodle/DoodleTouchDetector.java (51%) rename graffiti/src/main/java/cn/hzw/graffiti/GraffitiView.java => doodle/src/main/java/cn/hzw/doodle/DoodleView.java (71%) rename graffiti/src/main/java/cn/hzw/graffiti/IGraffitiListener.java => doodle/src/main/java/cn/hzw/doodle/IDoodleListener.java (65%) rename graffiti/src/main/java/cn/hzw/graffiti/core/IGraffiti.java => doodle/src/main/java/cn/hzw/doodle/core/IDoodle.java (71%) create mode 100644 doodle/src/main/java/cn/hzw/doodle/core/IDoodleColor.java rename graffiti/src/main/java/cn/hzw/graffiti/core/IGraffitiItem.java => doodle/src/main/java/cn/hzw/doodle/core/IDoodleItem.java (78%) rename graffiti/src/main/java/cn/hzw/graffiti/core/IGraffitiPen.java => doodle/src/main/java/cn/hzw/doodle/core/IDoodlePen.java (54%) rename graffiti/src/main/java/cn/hzw/graffiti/core/IGraffitiSelectableItem.java => doodle/src/main/java/cn/hzw/doodle/core/IDoodleSelectableItem.java (87%) rename graffiti/src/main/java/cn/hzw/graffiti/core/IGraffitiShape.java => doodle/src/main/java/cn/hzw/doodle/core/IDoodleShape.java (53%) rename graffiti/src/main/java/cn/hzw/graffiti/core/IGraffitiTouchDetector.java => doodle/src/main/java/cn/hzw/doodle/core/IDoodleTouchDetector.java (55%) rename {graffiti/src/main/java/cn/hzw/graffiti => doodle/src/main/java/cn/hzw/doodle}/dialog/ColorPickerDialog.java (98%) rename {graffiti/src/main/java/cn/hzw/graffiti => doodle/src/main/java/cn/hzw/doodle}/dialog/DialogController.java (93%) rename {graffiti/src/main/java/cn/hzw/graffiti => doodle/src/main/java/cn/hzw/doodle}/imagepicker/ImageLoader.java (92%) rename {graffiti/src/main/java/cn/hzw/graffiti => doodle/src/main/java/cn/hzw/doodle}/imagepicker/ImageSelectorAdapter.java (92%) rename {graffiti/src/main/java/cn/hzw/graffiti => doodle/src/main/java/cn/hzw/doodle}/imagepicker/ImageSelectorView.java (98%) rename {graffiti/src/main/java/cn/hzw/graffiti => doodle/src/main/java/cn/hzw/doodle}/util/DrawUtil.java (98%) rename graffiti/src/main/res/drawable-xxhdpi/graffiti_bar_background.9.png => doodle/src/main/res/drawable-xxhdpi/doodle_bar_background.9.png (100%) rename graffiti/src/main/res/drawable-xxhdpi/graffiti_bar_progress.9.png => doodle/src/main/res/drawable-xxhdpi/doodle_bar_progress.9.png (100%) rename graffiti/src/main/res/drawable-xxhdpi/graffiti_btn_add.png => doodle/src/main/res/drawable-xxhdpi/doodle_btn_add.png (100%) rename graffiti/src/main/res/drawable-xxhdpi/graffiti_btn_back.png => doodle/src/main/res/drawable-xxhdpi/doodle_btn_back.png (100%) rename graffiti/src/main/res/drawable-xxhdpi/graffiti_btn_finish.png => doodle/src/main/res/drawable-xxhdpi/doodle_btn_finish.png (100%) rename graffiti/src/main/res/drawable-xxhdpi/graffiti_btn_sub.png => doodle/src/main/res/drawable-xxhdpi/doodle_btn_sub.png (100%) rename graffiti/src/main/res/drawable-xxhdpi/graffiti_hide_panel.png => doodle/src/main/res/drawable-xxhdpi/doodle_hide_panel.png (100%) rename graffiti/src/main/res/drawable-xxhdpi/graffiti_hide_panel_pressed.png => doodle/src/main/res/drawable-xxhdpi/doodle_hide_panel_pressed.png (100%) rename graffiti/src/main/res/drawable-xxhdpi/graffiti_imageselector_image_selected.png => doodle/src/main/res/drawable-xxhdpi/doodle_imageselector_image_selected.png (100%) create mode 100644 doodle/src/main/res/drawable-xxhdpi/doodle_imageselector_loading.9.png rename graffiti/src/main/res/drawable-xxhdpi/graffiti_rotate.png => doodle/src/main/res/drawable-xxhdpi/doodle_rotate.png (100%) rename graffiti/src/main/res/drawable-xxhdpi/graffiti_shader1.jpg => doodle/src/main/res/drawable-xxhdpi/doodle_shader1.jpg (100%) mode change 100755 => 100644 rename graffiti/src/main/res/drawable-xxhdpi/graffiti_shader2.jpg => doodle/src/main/res/drawable-xxhdpi/doodle_shader2.jpg (100%) mode change 100755 => 100644 rename graffiti/src/main/res/drawable-xxhdpi/graffiti_shader3.jpg => doodle/src/main/res/drawable-xxhdpi/doodle_shader3.jpg (100%) mode change 100755 => 100644 rename graffiti/src/main/res/drawable-xxhdpi/graffiti_shader4.jpg => doodle/src/main/res/drawable-xxhdpi/doodle_shader4.jpg (100%) mode change 100755 => 100644 rename graffiti/src/main/res/drawable-xxhdpi/graffiti_shader5.jpg => doodle/src/main/res/drawable-xxhdpi/doodle_shader5.jpg (100%) mode change 100755 => 100644 rename graffiti/src/main/res/drawable-xxhdpi/graffiti_thumb_normal.png => doodle/src/main/res/drawable-xxhdpi/doodle_thumb_normal.png (100%) rename graffiti/src/main/res/drawable-xxhdpi/graffiti_thumb_pressed.png => doodle/src/main/res/drawable-xxhdpi/doodle_thumb_pressed.png (100%) create mode 100644 doodle/src/main/res/drawable/doodle_btn_effect_panel.xml rename graffiti/src/main/res/drawable/graffiti_btn_effect_rect_line.xml => doodle/src/main/res/drawable/doodle_btn_effect_rect_line.xml (60%) create mode 100644 doodle/src/main/res/drawable/doodle_btn_effect_rect_pressed_black.xml rename graffiti/src/main/res/drawable/graffiti_btn_effect_round.xml => doodle/src/main/res/drawable/doodle_btn_effect_round.xml (86%) create mode 100644 doodle/src/main/res/drawable/doodle_btn_effect_round_pressed_yellow.xml rename graffiti/src/main/res/drawable/graffiti_seekbar_bg.xml => doodle/src/main/res/drawable/doodle_seekbar_bg.xml (79%) rename graffiti/src/main/res/drawable/graffiti_shape_circle_normal.xml => doodle/src/main/res/drawable/doodle_shape_circle_normal.xml (100%) rename graffiti/src/main/res/drawable/graffiti_shape_circle_pressed.xml => doodle/src/main/res/drawable/doodle_shape_circle_pressed.xml (62%) rename graffiti/src/main/res/drawable/graffiti_shape_rect_pressed_black.xml => doodle/src/main/res/drawable/doodle_shape_rect_pressed_black.xml (100%) rename graffiti/src/main/res/drawable/graffiti_shape_rect_stroke_normal.xml => doodle/src/main/res/drawable/doodle_shape_rect_stroke_normal.xml (100%) rename graffiti/src/main/res/drawable/graffiti_shape_rect_stroke_pressed.xml => doodle/src/main/res/drawable/doodle_shape_rect_stroke_pressed.xml (100%) rename graffiti/src/main/res/drawable/graffiti_thumb_seekbarr.xml => doodle/src/main/res/drawable/doodle_thumb_seekbarr.xml (56%) rename graffiti/src/main/res/layout/graffiti_color_selector_dialog.xml => doodle/src/main/res/layout/doodle_color_selector_dialog.xml (83%) rename graffiti/src/main/res/layout/graffiti_create_bitmap.xml => doodle/src/main/res/layout/doodle_create_bitmap.xml (90%) rename graffiti/src/main/res/layout/graffiti_create_text.xml => doodle/src/main/res/layout/doodle_create_text.xml (86%) rename graffiti/src/main/res/layout/graffiti_dialog.xml => doodle/src/main/res/layout/doodle_dialog.xml (100%) rename graffiti/src/main/res/layout/graffiti_imageselector_item.xml => doodle/src/main/res/layout/doodle_imageselector_item.xml (83%) rename graffiti/src/main/res/layout/layout_graffiti.xml => doodle/src/main/res/layout/doodle_layout.xml (82%) rename graffiti/src/main/res/layout/graffit_layout_image_selector.xml => doodle/src/main/res/layout/doodle_layout_image_selector.xml (98%) rename graffiti/src/main/res/layout/graffiti_title_bar.xml => doodle/src/main/res/layout/doodle_title_bar.xml (85%) create mode 100644 doodle/src/main/res/values/color.xml rename {graffiti => doodle}/src/main/res/values/dimen.xml (100%) create mode 100644 doodle/src/main/res/values/strings.xml delete mode 100644 graffiti/src/main/java/cn/hzw/graffiti/GraffitiPaintAttrs.java delete mode 100644 graffiti/src/main/java/cn/hzw/graffiti/core/IGraffitiColor.java delete mode 100644 graffiti/src/main/res/drawable-xxhdpi/graffit_imageselector_loading.9.png delete mode 100644 graffiti/src/main/res/drawable/graffiti_btn_effect_panel.xml delete mode 100644 graffiti/src/main/res/drawable/graffiti_btn_effect_rect_pressed_black.xml delete mode 100644 graffiti/src/main/res/drawable/graffiti_btn_effect_round_pressed_yellow.xml delete mode 100644 graffiti/src/main/res/values/color.xml delete mode 100644 graffiti/src/main/res/values/strings.xml diff --git a/README.md b/README.md index f2e132b..e3f52ab 100644 --- a/README.md +++ b/README.md @@ -22,25 +22,25 @@ ### 界面 - ![IMG](https://raw.githubusercontent.com/1993hzw/common/master/Graffiti/01.png) - ![IMG](https://raw.githubusercontent.com/1993hzw/common/master/Graffiti/02.png) - ![IMG](https://raw.githubusercontent.com/1993hzw/common/master/Graffiti/03.png) + ![IMG](https://raw.githubusercontent.com/1993hzw/common/master/Doodle/01.png) + ![IMG](https://raw.githubusercontent.com/1993hzw/common/master/Doodle/02.png) + ![IMG](https://raw.githubusercontent.com/1993hzw/common/master/Doodle/03.png) ### 使用 ```groovy -compile 'com.hzw.graffiti:graffiti:4.3.1' +compile 'com.hzw.doodle:doodle:4.3.1' ``` ```java // 涂鸦参数 -GraffitiParams params = new GraffitiParams(); +DoodleParams params = new DoodleParams(); // 图片路径 params.mImagePath = list.get(0); // 初始画笔大小 params.mPaintSize = 20; // 启动涂鸦页面 -GraffitiActivity.startActivityForResult(MainActivity.this, params, REQ_CODE_GRAFFITI); +DoodleActivity.startActivityForResult(MainActivity.this, params, REQ_CODE_DOODLE); ``` @@ -60,10 +60,10 @@ dependencies { ```java /** - * 涂鸦界面,根据GraffitiView的接口,提供页面交互 + * 涂鸦界面,根据DoodleView的接口,提供页面交互 * */ -public class GraffitiActivity extends Activity { +public class DoodleActivity extends Activity { /** * 启动涂鸦界面 * @@ -71,9 +71,9 @@ public class GraffitiActivity extends Activity { * @param params 涂鸦参数 * @param requestCode startActivityForResult的请求码 */ - public static void startActivityForResult(Activity activity, GraffitiParams params, int requestCode) { - Intent intent = new Intent(activity, GraffitiActivity.class); - intent.putExtra(GraffitiActivity.KEY_PARAMS, params); + public static void startActivityForResult(Activity activity, DoodleParams params, int requestCode) { + Intent intent = new Intent(activity, DoodleActivity.class); + intent.putExtra(DoodleActivity.KEY_PARAMS, params); activity.startActivityForResult(intent, requestCode); } } @@ -81,12 +81,12 @@ public class GraffitiActivity extends Activity { ```java protected void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode == REQ_CODE_GRAFFITI) { - if (resultCode == GraffitiActivity.RESULT_OK) { + if (requestCode == REQ_CODE_DOODLE) { + if (resultCode == DoodleActivity.RESULT_OK) { // 获取涂鸦后的图片 - String path = data.getStringExtra(GraffitiActivity.KEY_IMAGE_PATH); + String path = data.getStringExtra(DoodleActivity.KEY_IMAGE_PATH); ... - } else if (resultCode == GraffitiActivity.RESULT_ERROR) { + } else if (resultCode == DoodleActivity.RESULT_ERROR) { ... } } @@ -97,13 +97,13 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { /** * 涂鸦参数 */ -public static class GraffitiParams implements Parcelable { +public static class DoodleParams implements Parcelable { /** * 图片路径 */ public String mImagePath; /** - *  保存路径,如果为null,则图片保存在根目录下/DCIM/Graffiti/ + *  保存路径,如果为null,则图片保存在根目录下/DCIM/Doodle/ */ public String mSavePath; /** diff --git a/app/build.gradle b/app/build.gradle index ba715db..5c84acf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,7 +4,7 @@ android { compileSdkVersion COMPILE_SDK_VERSION as int defaultConfig { - applicationId "cn.hzw.graffitidemo" + applicationId "cn.hzw.doodledemo" minSdkVersion MIN_SDK_VERSION as int targetSdkVersion TARGET_SDK_VERSION as int versionCode 1 @@ -21,7 +21,6 @@ android { dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') - compile project(':graffiti') -// compile project(':ImageSelctorLib-release') + compile project(':doodle') compile 'cn.hzw.imageselector:library:1.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6121e5b..6d182e2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + package="cn.hzw.doodledemo"> list = data.getStringArrayListExtra(ImageSelectorActivity.KEY_PATH_LIST); if (list != null && list.size() > 0) { - LogUtil.d("Graffiti", list.get(0)); + LogUtil.d("Doodle", list.get(0)); // 涂鸦参数 - GraffitiParams params = new GraffitiParams(); + DoodleParams params = new DoodleParams(); params.mIsFullScreen = true; // 图片路径 params.mImagePath = list.get(0); // 初始画笔大小 - params.mPaintUnitSize = GraffitiView.DEFAULT_SIZE; + params.mPaintUnitSize = DoodleView.DEFAULT_SIZE; params.mAmplifierScale = 0; // 启动涂鸦页面 - GraffitiActivity.startActivityForResult(MainActivity.this, params, REQ_CODE_GRAFFITI); + DoodleActivity.startActivityForResult(MainActivity.this, params, REQ_CODE_DOODLE); } - } else if (requestCode == REQ_CODE_GRAFFITI) { + } else if (requestCode == REQ_CODE_DOODLE) { if (data == null) { return; } - if (resultCode == GraffitiActivity.RESULT_OK) { - String path = data.getStringExtra(GraffitiActivity.KEY_IMAGE_PATH); + if (resultCode == DoodleActivity.RESULT_OK) { + String path = data.getStringExtra(DoodleActivity.KEY_IMAGE_PATH); if (TextUtils.isEmpty(path)) { return; } ImageLoader.getInstance(this).display(findViewById(R.id.img), path); mPath.setText(path); - } else if (resultCode == GraffitiActivity.RESULT_ERROR) { + } else if (resultCode == DoodleActivity.RESULT_ERROR) { Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_SHORT).show(); } } diff --git a/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/app/src/main/res/drawable-xxhdpi/ic_launcher.png index 324e72cdd7480cb983fa1bcc7ce686e51ef87fe7..bc261a273359db91f66a70fd02adbedc24308df6 100644 GIT binary patch literal 8509 zcmZ8{1y~$G)8^vtu8Su40znsdcMt9o7F*mMf(8k00Rq7_xVuYm4Xz0qg2QdT|DL<= z?%D0>o~pO1Yi4VztEcv(x~d!&IypK30Kig^m)3;!!T%a6GVItdYCaC@5N#z?BmjWA zM2shMB-lBPrM#vJ0O0!uh6@J(9{%Bv000k80N}(7003tI030CnGzCUMbCEZI0sz6dQ?lz6R*SX3Gd_iJX=TAQ+#*CWc?F?j_rg}{WQq%#<>GJ{YSM&% z;532J+96TG`GwJ_sC4esOprMnhm;bsbN}hupr9NENQ$3xGGC{{R^Vf6ZvC|2yST?Q5!+cM zTP|0>+v6qQJ#4u^;?dTTm_?LC%`qMBh#96nJ_?qm`#R9XkY0p=u2zz zcV`{w!^INJN4U9ITBzMhxi}>nuJjx(@ksARt$H+@mzM6e+q;1x@r&fi6|`WAcu_i? z>uXn0>aa>cQNjz6abtiNG~vjSG6j^H!%5{x$lceVRXtd+#$1L zokL&uANB9af7QU%0CfYMX3Dt*R08{_znn>BG?S*8(&)cj@t}{3vOf8c>|UzL&AH*0 zUpGpbiYnoNg(T8*&B!Hok|5mkfBoK51P;ff`OX3rbFNy!_p1)WC2fZd zayN)K(KSz3Zg;osG^=nyuT_fXEBA%|V^V~vCJ}NV+33Xa;J{yaF+Kb2lG7qmdwcmz zANbC9KQFXr3K+Uws&Lw{IeI@wI|W#wyR6_3eD;#K(Y0It0zDvc#{If`-k&dqATx^o zqW^^nojRc7Vn0V}pECA@o#NtW)7C#B+8}vYn98a_10@Y<9|u(6-RycZyIWC4gBqd2eyG z4pdk7WiLOFv^l(=pzGnodQSmNY3F03?{2{g!d~}Z4L;+p#WOoTr=bjgFmB6my>dez z>k27vt(V=zrPU^?5e3$qnXf%M(-MZwaYXUwpWd=R)ByOONl1}99&*N3(oI1zLu|dj zFRdcP2AIlOjPmY}1SL#-{}{`vrRKPEJzakdG~NtCA{E1O?e$RCbztcSQbnXaGR&yc!}CWlGbxw7;dk05hH}zpGxe1h#%^IJ>jaJ(74?oW@etEMLUCr&~Nx zv7^>q7a#QcKA?nr&pvZcx{!(Yv&&@_b8HDUToy%7I!1{gw$5C`Mi2w7#De?!X5HQO zR?lWCqgEmyB|+-`fhWBDbC|rCjulxXDwYnbUKbyc4RwCKwgZy7Hk*pxY@-G++ioKf zA3pqqrEVRLXd$;=-vPSK(_LshT7n67WrC;ZM2UGY=IFzS#0ss#{*=M0^0D`-ITgZ4OqZ^xV+>EB)^edq{unW~NiTKziX`RqlO!>L4O)^uB_9r`& zi(pIvGkkh*HRT&LQof8Ic;0@JKb)3%1{rQNvdcdWPJJ4z{xsQ@p)&Ic<+Fu1Yxogs ztLP-*Ou%-nUw5^cRWp210D8kUFEO#h1V}xTSe^NjfF);eff=f(rU0dJiAh~UN zo4{9jON#`>gvItOzal;%DPmeF%_EJBZHxTSEJ% zVJpyKTC2X%37w6?Us=eebDj71*{%3DVY#%i;VOzUpYX3XLecXjl_cvyHaH#)*ssh5 zN*AI;2L~UFw9gJgxi}KWbuP*)&Efd7=?{o5}yAn`qB{spH1BlJ+x~9*<3$Q z;@Kc-tFnQY-8qn0poA>Y4*$TMsOBup!0&IT@+mOiW3I42$q_#o@Qfk#kmmQ*XNoR1 zWz5U{R#rw)AWMUp@eLmKdm0I?jLYmh#fStne?rWwj1lZhAB|WxSJZ{Xa)W5nYZTvo+E$P6kHeQK)1Pkh1Y*aHj&e2E z*PZJ49d5^W4Av}un9HNDmtpu3N=VI@Owj9#8Xm^s>(y|d^JUNfxy~GpF)sq(zmf3qxOCcABM3KWfuz*{J3E{esllNRgZo5S=uG zpwvg8!^HW|dowFTl;yQ#!sN zCrM z(rSIZa^89k8i2J9wJd$l2Wud__d|Z>i%nTlEdHd(u!#uUkd$nXjQ9uVD$GqGJS|YI za4$n;{HV%i-~u8^ylb6*)6~4tu%Ypu?nQY*@6r+z?o3b6NQ2Gc2jxGkjt&L#OS{^SWH{*HEAQ_hVY^TP;|su+cw()~imddA0%T%KeV@|zoL1^>)B`OWwg z#FuUKYLda9tvviq3oHg7nzomjg~(rn)c`u-IY>47Ea>z8=XNZ8RdhH;`V767Hk zpLT|Iec#ww{B90=%-LW*p;cu3=A7D^Yn-oumiG03bqmZ+e6*7vElBiKFKP?am3$11iTurTqA-SA>{aD44U;R-VuTenWdd47d!G%9p1PS$ zsx!8Zt>=GZzF%+RP_|AOyIOfLmu2mNJ>Q;@Y+cRFl8≷beNj95u_3xc~*MG7dtC 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 literal 7718 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 diff --git a/app/src/main/res/drawable/ic_launcher.png b/app/src/main/res/drawable/ic_launcher.png index cde69bcccec65160d92116f20ffce4fce0b5245c..ef072519653cba58abdd8b299dd5c67d2f2cb6a7 100644 GIT binary patch literal 6231 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 LswQ( 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 + tools:context="cn.hzw.doodledemo.MainActivity">