├── .gitignore ├── .idea ├── compiler.xml ├── copyright │ └── profiles_settings.xml └── runConfigurations.xml ├── MagicShow ├── .gitignore ├── CMakeLists.txt ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── zero │ │ └── magicshow │ │ └── core │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ └── filter │ │ │ ├── amaro_mask1.jpg │ │ │ ├── amaro_mask2.jpg │ │ │ ├── amaromap.png │ │ │ ├── blackboard1024.png │ │ │ ├── blend1.jpg │ │ │ ├── bluevintage_mask1.jpg │ │ │ ├── brannan_blowout.png │ │ │ ├── brannan_contrast.png │ │ │ ├── brannan_luma.png │ │ │ ├── brannan_process.png │ │ │ ├── brannan_screen.png │ │ │ ├── brooklynCurves1.png │ │ │ ├── brooklynCurves2.png │ │ │ ├── calm_mask1.jpg │ │ │ ├── calm_mask2.jpg │ │ │ ├── earlybirdOverlayMap.png │ │ │ ├── earlybirdblowout.png │ │ │ ├── earlybirdcurves.png │ │ │ ├── earlybirdmap.png │ │ │ ├── earlybirdoverlaymap_new.png │ │ │ ├── edgeburn.png │ │ │ ├── fairy_tale.png │ │ │ ├── filter_map_first.png │ │ │ ├── flower_layer2c.jpg │ │ │ ├── freud_rand.png │ │ │ ├── healthy_mask_1.jpg │ │ │ ├── hefegradientmap.png │ │ │ ├── hefemap.png │ │ │ ├── hefemetal.png │ │ │ ├── hefesoftlight.png │ │ │ ├── hudsonbackground.png │ │ │ ├── hudsonmap.png │ │ │ ├── inkwellmap.png │ │ │ ├── kelvinmap.png │ │ │ ├── line_layer_c.jpg │ │ │ ├── lomomap_new.png │ │ │ ├── lookup_amatorka_02.png │ │ │ ├── lookup_highkey.png │ │ │ ├── n1977blowout.png │ │ │ ├── n1977map.png │ │ │ ├── nashvillemap.png │ │ │ ├── overlaymap.png │ │ │ ├── pixar_curves.png │ │ │ ├── rise_mask1.jpg │ │ │ ├── rise_mask2.jpg │ │ │ ├── risemap.png │ │ │ ├── sierramap.png │ │ │ ├── sierravignette.png │ │ │ ├── softlight.png │ │ │ ├── sutrocurves.png │ │ │ ├── sutroedgeburn.png │ │ │ ├── sutrometal.png │ │ │ ├── toastercolorshift.png │ │ │ ├── toastercurves.png │ │ │ ├── toastermetal.png │ │ │ ├── toasteroverlaymapwarm.png │ │ │ ├── toastersoftlight.png │ │ │ ├── toy_mask1.jpg │ │ │ ├── toy_mask2.jpg │ │ │ ├── toy_mask3.jpg │ │ │ ├── valenciagradientmap.png │ │ │ ├── valenciamap.png │ │ │ ├── vignette_map.png │ │ │ ├── vignettemap_new.png │ │ │ ├── walden_map.png │ │ │ ├── warm_layer1.jpg │ │ │ └── xpromap.png │ ├── cpp │ │ ├── MagicJni.cpp │ │ ├── beautify │ │ │ ├── MagicBeautify.cpp │ │ │ └── MagicBeautify.h │ │ └── bitmap │ │ │ ├── BitmapOperation.cpp │ │ │ ├── BitmapOperation.h │ │ │ ├── Conversion.cpp │ │ │ ├── Conversion.h │ │ │ └── JniBitmap.h │ ├── java │ │ └── com │ │ │ └── zero │ │ │ └── magicshow │ │ │ ├── MagicShowManager.java │ │ │ ├── activity │ │ │ ├── AlbumActivity.java │ │ │ └── CameraActivity.java │ │ │ ├── adapter │ │ │ └── FilterAdapter.java │ │ │ ├── common │ │ │ ├── base │ │ │ │ ├── BaseActivity.java │ │ │ │ └── MagicBaseView.java │ │ │ ├── config │ │ │ │ ├── CameraConfig.java │ │ │ │ └── PathConfig.java │ │ │ ├── entity │ │ │ │ └── MagicShowResultEntity.java │ │ │ ├── iface │ │ │ │ ├── CameraShootCallBack.java │ │ │ │ ├── DialogYesOrNoCallBack.java │ │ │ │ ├── GravityCallBack.java │ │ │ │ ├── ImageEditCallBack.java │ │ │ │ └── MagicListener.java │ │ │ └── utils │ │ │ │ ├── BaseUtil.java │ │ │ │ ├── CameraBitmapUtil.java │ │ │ │ ├── CameraParamUtil.java │ │ │ │ ├── Constants.java │ │ │ │ ├── DateUtils.java │ │ │ │ ├── FilterTypeHelper.java │ │ │ │ ├── GravityUtil.java │ │ │ │ ├── MagicParams.java │ │ │ │ ├── OpenGlUtils.java │ │ │ │ ├── Rotation.java │ │ │ │ ├── RxBus.java │ │ │ │ ├── SavePictureTask.java │ │ │ │ ├── TextureRotationUtil.java │ │ │ │ └── ZeroSubject.java │ │ │ ├── core │ │ │ ├── MagicEngine.java │ │ │ ├── beautify │ │ │ │ └── MagicJni.java │ │ │ ├── camera │ │ │ │ ├── CameraEngine.java │ │ │ │ └── utils │ │ │ │ │ ├── CameraInfo.java │ │ │ │ │ └── CameraUtils.java │ │ │ ├── encoder │ │ │ │ ├── gles │ │ │ │ │ ├── EglCore.java │ │ │ │ │ └── EglSurfaceBase.java │ │ │ │ └── video │ │ │ │ │ ├── TextureMovieEncoder.java │ │ │ │ │ ├── VideoEncoderCore.java │ │ │ │ │ └── WindowSurface.java │ │ │ ├── filter │ │ │ │ ├── advanced │ │ │ │ │ ├── MagicAmaroFilter.java │ │ │ │ │ ├── MagicAntiqueFilter.java │ │ │ │ │ ├── MagicBeautyFilter.java │ │ │ │ │ ├── MagicBlackCatFilter.java │ │ │ │ │ ├── MagicBrannanFilter.java │ │ │ │ │ ├── MagicBrooklynFilter.java │ │ │ │ │ ├── MagicCalmFilter.java │ │ │ │ │ ├── MagicCoolFilter.java │ │ │ │ │ ├── MagicCrayonFilter.java │ │ │ │ │ ├── MagicEarlyBirdFilter.java │ │ │ │ │ ├── MagicEmeraldFilter.java │ │ │ │ │ ├── MagicEvergreenFilter.java │ │ │ │ │ ├── MagicFairytaleFilter.java │ │ │ │ │ ├── MagicFreudFilter.java │ │ │ │ │ ├── MagicHealthyFilter.java │ │ │ │ │ ├── MagicHefeFilter.java │ │ │ │ │ ├── MagicHudsonFilter.java │ │ │ │ │ ├── MagicImageAdjustFilter.java │ │ │ │ │ ├── MagicInkwellFilter.java │ │ │ │ │ ├── MagicKevinFilter.java │ │ │ │ │ ├── MagicLatteFilter.java │ │ │ │ │ ├── MagicLomoFilter.java │ │ │ │ │ ├── MagicN1977Filter.java │ │ │ │ │ ├── MagicNashvilleFilter.java │ │ │ │ │ ├── MagicNostalgiaFilter.java │ │ │ │ │ ├── MagicPixarFilter.java │ │ │ │ │ ├── MagicRiseFilter.java │ │ │ │ │ ├── MagicRomanceFilter.java │ │ │ │ │ ├── MagicSakuraFilter.java │ │ │ │ │ ├── MagicSierraFilter.java │ │ │ │ │ ├── MagicSketchFilter.java │ │ │ │ │ ├── MagicSkinWhitenFilter.java │ │ │ │ │ ├── MagicSunriseFilter.java │ │ │ │ │ ├── MagicSunsetFilter.java │ │ │ │ │ ├── MagicSutroFilter.java │ │ │ │ │ ├── MagicSweetsFilter.java │ │ │ │ │ ├── MagicTenderFilter.java │ │ │ │ │ ├── MagicToasterFilter.java │ │ │ │ │ ├── MagicValenciaFilter.java │ │ │ │ │ ├── MagicWaldenFilter.java │ │ │ │ │ ├── MagicWarmFilter.java │ │ │ │ │ ├── MagicWhiteCatFilter.java │ │ │ │ │ └── MagicXproIIFilter.java │ │ │ │ ├── base │ │ │ │ │ ├── MagicBaseGroupFilter.java │ │ │ │ │ ├── MagicCameraInputFilter.java │ │ │ │ │ ├── MagicLookupFilter.java │ │ │ │ │ └── gpuimage │ │ │ │ │ │ ├── GPUImageBrightnessFilter.java │ │ │ │ │ │ ├── GPUImageContrastFilter.java │ │ │ │ │ │ ├── GPUImageExposureFilter.java │ │ │ │ │ │ ├── GPUImageFilter.java │ │ │ │ │ │ ├── GPUImageHueFilter.java │ │ │ │ │ │ ├── GPUImageSaturationFilter.java │ │ │ │ │ │ └── GPUImageSharpenFilter.java │ │ │ │ └── utils │ │ │ │ │ ├── MagicFilterFactory.java │ │ │ │ │ └── MagicFilterType.java │ │ │ └── widget │ │ │ │ ├── BubbleSeekBar.java │ │ │ │ ├── MagicCameraView.java │ │ │ │ ├── MagicImageView.java │ │ │ │ └── TwoLineSeekBar.java │ │ │ ├── view │ │ │ └── edit │ │ │ │ ├── ImageEditFragment.java │ │ │ │ ├── ImageEditManager.java │ │ │ │ ├── adjust │ │ │ │ └── ImageEditAdjustView.java │ │ │ │ ├── beauty │ │ │ │ └── ImageEditBeautyView.java │ │ │ │ ├── filter │ │ │ │ └── ImageEditFilterView.java │ │ │ │ ├── iface │ │ │ │ └── ImageEditNavListener.java │ │ │ │ └── navigation │ │ │ │ └── ImageEditNavigationView.java │ │ │ └── viewmanager │ │ │ └── CameraManager.java │ ├── libs │ │ └── zero.jar │ └── res │ │ ├── anim │ │ ├── bottom_sliding_in.xml │ │ └── bottom_sliding_out.xml │ │ ├── color │ │ ├── selector_image_back.xml │ │ ├── selector_image_edit.xml │ │ └── selector_image_edit_yellow.xml │ │ ├── drawable-hdpi │ │ └── ic_launcher.png │ │ ├── drawable-mdpi │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ ├── button_take_pic_normal.png │ │ ├── button_take_pic_pressed.png │ │ ├── close_black_seq.png │ │ ├── close_blue_round.png │ │ ├── edit_bg_adjust_contrast.png │ │ ├── edit_bg_adjust_contrast_press.png │ │ ├── edit_bg_adjust_exposure.png │ │ ├── edit_bg_adjust_exposure_press.png │ │ ├── edit_bg_adjust_hdr.png │ │ ├── edit_bg_adjust_hdr_press.png │ │ ├── edit_bg_adjust_saturation.png │ │ ├── edit_bg_adjust_saturation_press.png │ │ ├── edit_bg_adjust_sharpness.png │ │ ├── edit_bg_adjust_sharpness_press.png │ │ ├── edit_bg_adjust_vibrance.png │ │ ├── edit_bg_adjust_vibrance_press.png │ │ ├── edit_bg_done.png │ │ ├── edit_bg_done_disenable.png │ │ ├── edit_bg_done_press.png │ │ ├── edit_color_hue.png │ │ ├── edit_color_hue_press.png │ │ ├── i_adds.png │ │ ├── i_adds_blue.png │ │ ├── i_auto_beauty.png │ │ ├── i_auto_beauty_pressed.png │ │ ├── i_cosmesis.png │ │ ├── i_cosmesis_blue.png │ │ ├── i_edit.png │ │ ├── i_edit_blue.png │ │ ├── i_effect.png │ │ ├── i_effect_blue.png │ │ ├── i_frame.png │ │ ├── i_frame_blue.png │ │ ├── i_skinprocess.png │ │ ├── i_skinprocess_pressed.png │ │ ├── ic_camera_beauty.png │ │ ├── ic_camera_beauty_pressed.png │ │ ├── ic_camera_filter.png │ │ ├── ic_collage_layout_filters_bar_close_normal.png │ │ ├── ic_collage_layout_filters_bar_close_pressed.png │ │ ├── ic_launcher.png │ │ ├── ic_seekbar_smallsize_thumb_light_normal.png │ │ ├── ic_seekbar_smallsize_thumb_light_pressed.png │ │ ├── ic_seekbar_thumb_light_normal.png │ │ ├── ic_seekbar_thumb_light_pressed.png │ │ ├── ic_seekbar_thumb_normal.png │ │ ├── ic_seekbar_thumb_pressed.png │ │ ├── icon_camera.png │ │ ├── icon_video.png │ │ ├── image_edit_back.png │ │ ├── image_edit_save.png │ │ ├── mix_gallery_bottom_back_click.png │ │ ├── mix_gallery_bottom_back_normal.png │ │ ├── record_camera_switch_normal.png │ │ ├── record_camera_switch_press.png │ │ ├── seekbar_bg.9.png │ │ ├── seekbar_bg_light.9.png │ │ ├── seekbar_primary_progress.9.png │ │ ├── seekbar_transparent_bg.9.png │ │ └── tooltip_bg.9.png │ │ ├── drawable-xxhdpi │ │ ├── balance_lack_close_icon.png │ │ ├── filter_thumb_1977.jpg │ │ ├── filter_thumb_amoro.jpg │ │ ├── filter_thumb_antique.png │ │ ├── filter_thumb_beauty.png │ │ ├── filter_thumb_blackcat.png │ │ ├── filter_thumb_brannan.jpg │ │ ├── filter_thumb_brooklyn.jpg │ │ ├── filter_thumb_calm.png │ │ ├── filter_thumb_cool.png │ │ ├── filter_thumb_crayon.jpg │ │ ├── filter_thumb_earlybird.jpg │ │ ├── filter_thumb_emerald.png │ │ ├── filter_thumb_evergreen.png │ │ ├── filter_thumb_fairytale.png │ │ ├── filter_thumb_freud.jpg │ │ ├── filter_thumb_healthy.png │ │ ├── filter_thumb_hefe.jpg │ │ ├── filter_thumb_hudson.jpg │ │ ├── filter_thumb_inkwell.jpg │ │ ├── filter_thumb_kevin.jpg │ │ ├── filter_thumb_latte.png │ │ ├── filter_thumb_lomo.jpg │ │ ├── filter_thumb_nashville.jpg │ │ ├── filter_thumb_nostalgia.png │ │ ├── filter_thumb_original.png │ │ ├── filter_thumb_piaxr.jpg │ │ ├── filter_thumb_rise.jpg │ │ ├── filter_thumb_romance.png │ │ ├── filter_thumb_sakura.png │ │ ├── filter_thumb_sierra.jpg │ │ ├── filter_thumb_sketch.png │ │ ├── filter_thumb_sunrise.png │ │ ├── filter_thumb_sunset.png │ │ ├── filter_thumb_sutro.jpg │ │ ├── filter_thumb_sweets.png │ │ ├── filter_thumb_tender.png │ │ ├── filter_thumb_toastero.jpg │ │ ├── filter_thumb_valencia.jpg │ │ ├── filter_thumb_walden.jpg │ │ ├── filter_thumb_warm.png │ │ ├── filter_thumb_whitecat.png │ │ ├── filter_thumb_xpro.jpg │ │ ├── ic_launcher.png │ │ ├── image_edit_modify_close.png │ │ ├── image_edit_modify_save.png │ │ ├── take_filter_confirm_btn_skin_flat.png │ │ ├── take_filter_favorite_btn01_layer00_skin_flat.png │ │ ├── take_filter_favorite_btn01_layer01_skin_flat.png │ │ ├── take_filter_favorite_btn02_skin_flat.png │ │ ├── take_filter_favorite_icon01_skin_flat.png │ │ ├── take_filter_favorite_icon02_skin_flat.png │ │ ├── take_filter_random_btn_skin_flat.png │ │ └── yes_or_no_dialog_line.9.png │ │ ├── drawable │ │ ├── btn_camera_beauty.xml │ │ ├── btn_camera_filter.xml │ │ ├── btn_camera_shutter.xml │ │ ├── btn_layout_filters_bar_close.xml │ │ ├── corners_yuanjiao_dialog.xml │ │ ├── seekbar_progress.xml │ │ ├── seekbar_progress_light.xml │ │ ├── seekbar_thumb.xml │ │ ├── seekbar_thumb_light.xml │ │ ├── selector_filter_favorite_btn.xml │ │ ├── selector_filter_selected.xml │ │ ├── selector_image_adds.xml │ │ ├── selector_image_back.xml │ │ ├── selector_image_beauty.xml │ │ ├── selector_image_edit.xml │ │ ├── selector_image_edit_adjust_bright.xml │ │ ├── selector_image_edit_adjust_contrast.xml │ │ ├── selector_image_edit_adjust_exposure.xml │ │ ├── selector_image_edit_adjust_hue.xml │ │ ├── selector_image_edit_adjust_saturation.xml │ │ ├── selector_image_edit_adjust_sharpness.xml │ │ ├── selector_image_edit_adjust_vibrance.xml │ │ ├── selector_image_filter.xml │ │ ├── selector_image_fragment_skin.xml │ │ ├── selector_image_frame.xml │ │ ├── selector_image_save.xml │ │ ├── selector_rewardcamera.xml │ │ └── take_filter_favorite_btn.xml │ │ ├── layout │ │ ├── activity_camera.xml │ │ ├── activity_image.xml │ │ ├── activity_main.xml │ │ ├── dialog_yes_or_no.xml │ │ ├── filter_item_layout.xml │ │ ├── filter_layout.xml │ │ ├── fragment_image_edit_adjust.xml │ │ ├── fragment_image_edit_beauty.xml │ │ └── fragment_image_edit_filter.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── raw │ │ ├── amaro.glsl │ │ ├── antique.glsl │ │ ├── beauty.glsl │ │ ├── blackcat.glsl │ │ ├── brannan.glsl │ │ ├── brooklyn.glsl │ │ ├── calm.glsl │ │ ├── cool.glsl │ │ ├── crayon.glsl │ │ ├── default_fragment.glsl │ │ ├── default_vertex.glsl │ │ ├── earlybird.glsl │ │ ├── emerald.glsl │ │ ├── evergreen.glsl │ │ ├── freud.glsl │ │ ├── healthy.glsl │ │ ├── hefe.glsl │ │ ├── hudson.glsl │ │ ├── inkwell.glsl │ │ ├── kevin_new.glsl │ │ ├── latte.glsl │ │ ├── lomo.glsl │ │ ├── n1977.glsl │ │ ├── nashville.glsl │ │ ├── nostalgia.glsl │ │ ├── pixar.glsl │ │ ├── rise.glsl │ │ ├── romance.glsl │ │ ├── sakura.glsl │ │ ├── sierra.glsl │ │ ├── sketch.glsl │ │ ├── skinwhiten.glsl │ │ ├── suger_tablets.glsl │ │ ├── sunrise.glsl │ │ ├── sunset.glsl │ │ ├── sutro.glsl │ │ ├── sweets.glsl │ │ ├── tender.glsl │ │ ├── toaster2_filter_shader.glsl │ │ ├── valencia.glsl │ │ ├── walden.glsl │ │ ├── warm.glsl │ │ ├── whitecat.glsl │ │ └── xproii_filter_shader.glsl │ │ ├── values-v11 │ │ └── styles.xml │ │ ├── values-v14 │ │ └── styles.xml │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── zero │ └── magicshow │ └── core │ └── ExampleUnitTest.java ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── zero │ │ └── magicshow │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ └── dark.jpg │ ├── java │ │ └── com │ │ │ └── zero │ │ │ └── magicshowsim │ │ │ └── MainActivity.java │ └── res │ │ ├── anim │ │ ├── bottom_sliding_in.xml │ │ └── bottom_sliding_out.xml │ │ ├── color │ │ ├── selector_image_back.xml │ │ ├── selector_image_edit.xml │ │ └── selector_image_edit_yellow.xml │ │ ├── drawable-hdpi │ │ └── ic_launcher.png │ │ ├── drawable-mdpi │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-v11 │ │ └── styles.xml │ │ ├── values-v14 │ │ └── styles.xml │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── zero │ └── magicshow │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── tools └── versions_configuration.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | MagicShow/.externalNativeBuild 10 | .idea/* 11 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /MagicShow/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /MagicShow/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # For more information about using CMake with Android Studio, read the 2 | # documentation: https://d.android.com/studio/projects/add-native-code.html 3 | 4 | # Sets the minimum version of CMake required to build the native library. 5 | 6 | cmake_minimum_required(VERSION 3.4.1) 7 | 8 | #C 的编译选项是 CMAKE_C_FLAGS 9 | # 指定编译参数,可选 10 | 11 | # SET(CMAKE_CXX_FLAGS "-Wno-error=format-security -Wno-error=pointer-sign") 12 | 13 | # Creates and names a library, sets it as either STATIC 14 | # or SHARED, and provides the relative paths to its source code. 15 | # You can define multiple libraries, and CMake builds them for you. 16 | # Gradle automatically packages shared libraries with your APK. 17 | 18 | add_library( # Sets the name of the library. 19 | MagicJni 20 | 21 | # Sets the library as a shared library. 22 | SHARED 23 | 24 | # Provides a relative path to your source file(s). 25 | src/main/cpp/beautify/MagicBeautify.cpp 26 | src/main/cpp/bitmap/BitmapOperation.cpp 27 | src/main/cpp/bitmap/Conversion.cpp 28 | src/main/cpp/MagicJni.cpp 29 | ) 30 | 31 | target_link_libraries( MagicJni 32 | log ) 33 | 34 | # Searches for a specified prebuilt library and stores the path as a 35 | # variable. Because CMake includes system libraries in the search path by 36 | # default, you only need to specify the name of the public NDK library 37 | # you want to add. CMake verifies that the library exists before 38 | # completing its build. 39 | 40 | find_library( # Sets the name of the path variable. 41 | log-lib 42 | 43 | # Specifies the name of the NDK library that 44 | # you want CMake to locate. 45 | log ) 46 | 47 | # Specifies libraries CMake should link to your target library. You 48 | # can link multiple libraries, such as libraries you define in this 49 | # build script, prebuilt third-party libraries, or system libraries. 50 | # 设置生成的so动态库最后输出的路径 51 | 52 | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}) 53 | 54 | target_link_libraries( # Specifies the target library. 55 | MagicJni 56 | # Links the target library to the log library 57 | # included in the NDK. 58 | #加入该依赖库 59 | jnigraphics 60 | ${log-lib} ) -------------------------------------------------------------------------------- /MagicShow/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | //apply from: "$project.rootDir/tools/versions_configuration.gradle" 3 | // JitPack Maven 4 | apply plugin: 'com.github.dcendents.android-maven' 5 | // Your Group 6 | group='com.github.zerochl' 7 | android { 8 | compileSdkVersion 28 9 | buildToolsVersion "28.0.0" 10 | 11 | defaultConfig { 12 | minSdkVersion 18 13 | targetSdkVersion 28 14 | versionCode 1 15 | versionName "1.0" 16 | externalNativeBuild { 17 | cmake { 18 | cppFlags "-std=c++11" 19 | // cppFlags "-DANDROID_NDK","-D_DEBUG" 20 | } 21 | } 22 | ndk{ 23 | moduleName "MagicJni" 24 | abiFilters "armeabi-v7a","arm64-v8a","x86","x86_64" 25 | // stl = "stlport_static" 26 | } 27 | } 28 | 29 | lintOptions { 30 | abortOnError false 31 | } 32 | externalNativeBuild { 33 | cmake { 34 | path "CMakeLists.txt" 35 | } 36 | } 37 | sourceSets{ 38 | main{ 39 | jniLibs.srcDirs = ['src/main/jniLibs'] 40 | } 41 | } 42 | 43 | buildTypes { 44 | release { 45 | minifyEnabled = false 46 | proguardFiles.add(file('proguard-rules.txt')) 47 | } 48 | } 49 | } 50 | 51 | 52 | dependencies { 53 | api fileTree(include: ['*.jar'], dir: 'libs') 54 | testImplementation 'junit:junit:4.12' 55 | api files('src/main/libs/zero.jar') 56 | api "com.android.support:design:27.1.1" 57 | api "com.android.support:appcompat-v7:27.1.1" 58 | api 'io.reactivex:rxjava:latest.integration' 59 | api 'io.reactivex:rxandroid:latest.integration' 60 | 61 | } 62 | -------------------------------------------------------------------------------- /MagicShow/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\android-sdk-windows/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /MagicShow/src/androidTest/java/com/zero/magicshow/core/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /MagicShow/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/amaro_mask1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/amaro_mask1.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/amaro_mask2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/amaro_mask2.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/amaromap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/amaromap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/blackboard1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/blackboard1024.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/blend1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/blend1.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/bluevintage_mask1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/bluevintage_mask1.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/brannan_blowout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/brannan_blowout.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/brannan_contrast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/brannan_contrast.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/brannan_luma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/brannan_luma.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/brannan_process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/brannan_process.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/brannan_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/brannan_screen.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/brooklynCurves1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/brooklynCurves1.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/brooklynCurves2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/brooklynCurves2.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/calm_mask1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/calm_mask1.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/calm_mask2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/calm_mask2.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/earlybirdOverlayMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/earlybirdOverlayMap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/earlybirdblowout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/earlybirdblowout.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/earlybirdcurves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/earlybirdcurves.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/earlybirdmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/earlybirdmap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/earlybirdoverlaymap_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/earlybirdoverlaymap_new.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/edgeburn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/edgeburn.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/fairy_tale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/fairy_tale.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/filter_map_first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/filter_map_first.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/flower_layer2c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/flower_layer2c.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/freud_rand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/freud_rand.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/healthy_mask_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/healthy_mask_1.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/hefegradientmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/hefegradientmap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/hefemap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/hefemap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/hefemetal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/hefemetal.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/hefesoftlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/hefesoftlight.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/hudsonbackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/hudsonbackground.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/hudsonmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/hudsonmap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/inkwellmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/inkwellmap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/kelvinmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/kelvinmap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/line_layer_c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/line_layer_c.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/lomomap_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/lomomap_new.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/lookup_amatorka_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/lookup_amatorka_02.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/lookup_highkey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/lookup_highkey.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/n1977blowout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/n1977blowout.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/n1977map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/n1977map.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/nashvillemap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/nashvillemap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/overlaymap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/overlaymap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/pixar_curves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/pixar_curves.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/rise_mask1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/rise_mask1.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/rise_mask2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/rise_mask2.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/risemap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/risemap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/sierramap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/sierramap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/sierravignette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/sierravignette.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/softlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/softlight.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/sutrocurves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/sutrocurves.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/sutroedgeburn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/sutroedgeburn.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/sutrometal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/sutrometal.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/toastercolorshift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/toastercolorshift.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/toastercurves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/toastercurves.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/toastermetal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/toastermetal.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/toasteroverlaymapwarm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/toasteroverlaymapwarm.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/toastersoftlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/toastersoftlight.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/toy_mask1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/toy_mask1.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/toy_mask2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/toy_mask2.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/toy_mask3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/toy_mask3.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/valenciagradientmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/valenciagradientmap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/valenciamap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/valenciamap.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/vignette_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/vignette_map.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/vignettemap_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/vignettemap_new.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/walden_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/walden_map.png -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/warm_layer1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/warm_layer1.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/assets/filter/xpromap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/assets/filter/xpromap.png -------------------------------------------------------------------------------- /MagicShow/src/main/cpp/beautify/MagicBeautify.h: -------------------------------------------------------------------------------- 1 | #ifndef _MAGIC_BEAUTIFY_H_ 2 | #define _MAGIC_BEAUTIFY_H_ 3 | 4 | #include "../bitmap/JniBitmap.h" 5 | 6 | class MagicBeautify 7 | { 8 | public: 9 | void initMagicBeautify(JniBitmap* jniBitmap); 10 | void unInitMagicBeautify(); 11 | 12 | void startSkinSmooth(float smoothlevel); 13 | void startWhiteSkin(float whitenlevel); 14 | 15 | static MagicBeautify* getInstance(); 16 | ~MagicBeautify(); 17 | 18 | static void* _startWhiteSkinAsync(void* args); 19 | private: 20 | static MagicBeautify * instance; 21 | MagicBeautify(); 22 | 23 | uint64_t *mIntegralMatrix; 24 | uint64_t *mIntegralMatrixSqr; 25 | 26 | uint32_t *storedBitmapPixels; 27 | uint32_t *mImageData_rgb; 28 | 29 | uint8_t *mImageData_yuv; 30 | uint8_t *mSkinMatrix; 31 | 32 | int mImageWidth; 33 | int mImageHeight; 34 | float mSmoothLevel; 35 | float mWhitenLevel; 36 | 37 | void initIntegral(); 38 | 39 | void initSkinMatrix(); 40 | 41 | void _startBeauty(float smoothlevel, float whitenlevel); 42 | void _startSkinSmooth(float smoothlevel); 43 | void _startWhiteSkin(float whitenlevel); 44 | }; 45 | #endif 46 | -------------------------------------------------------------------------------- /MagicShow/src/main/cpp/bitmap/BitmapOperation.h: -------------------------------------------------------------------------------- 1 | #ifndef _BITMAP_OPERATION_H_ 2 | #define _BITMAP_OPERATION_H_ 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include "JniBitmap.h" 11 | 12 | class BitmapOperation 13 | { 14 | public: 15 | 16 | static int32_t convertArgbToInt(ARGB argb); 17 | static void convertIntToArgb(uint32_t pixel, ARGB* argb); 18 | 19 | static jobject jniStoreBitmapData( 20 | JNIEnv * env, jobject obj, jobject bitmap); 21 | static void jniFreeBitmapData( 22 | JNIEnv * env, jobject obj, jobject handle); 23 | static jobject jniGetBitmapFromStoredBitmapData( 24 | JNIEnv * env, jobject obj, jobject handle); 25 | }; 26 | #endif 27 | -------------------------------------------------------------------------------- /MagicShow/src/main/cpp/bitmap/Conversion.cpp: -------------------------------------------------------------------------------- 1 | #include "Conversion.h" 2 | 3 | void Conversion::YCbCrToRGB(uint8_t* From, uint8_t* To, int length) 4 | { 5 | if (length < 1) return; 6 | int Red, Green, Blue; 7 | int Y, Cb, Cr; 8 | int i,offset; 9 | for(i = 0; i < length; i++) 10 | { 11 | offset = (i << 1) + i; 12 | Y = From[offset]; Cb = From[offset+1] - 128; Cr = From[offset+2] - 128; 13 | Red = Y + ((RGBRCrI * Cr + HalfShiftValue) >> Shift); 14 | Green = Y + ((RGBGCbI * Cb + RGBGCrI * Cr + HalfShiftValue) >> Shift); 15 | Blue = Y + ((RGBBCbI * Cb + HalfShiftValue) >> Shift); 16 | if (Red > 255) Red = 255; else if (Red < 0) Red = 0; 17 | if (Green > 255) Green = 255; else if (Green < 0) Green = 0; 18 | if (Blue > 255) Blue = 255; else if (Blue < 0) Blue = 0; 19 | offset = i << 2; 20 | To[offset] = (uint8_t)Blue; 21 | To[offset+1] = (uint8_t)Green; 22 | To[offset+2] = (uint8_t)Red; 23 | To[offset+3] = 0xff; 24 | } 25 | } 26 | 27 | void Conversion::RGBToYCbCr(uint8_t* From, uint8_t* To, int length) 28 | { 29 | if (length < 1) return; 30 | int Red, Green, Blue; 31 | int i,offset; 32 | for(i = 0; i < length; i++) 33 | { 34 | offset = i << 2; 35 | Blue = From[offset]; Green = From[offset+1]; Red = From[offset+2]; 36 | offset = (i << 1) + i; 37 | To[offset] = (uint8_t)((YCbCrYRI * Red + YCbCrYGI * Green + YCbCrYBI * Blue + HalfShiftValue) >> Shift); 38 | To[offset+1] = (uint8_t)(128 + ((YCbCrCbRI * Red + YCbCrCbGI * Green + YCbCrCbBI * Blue + HalfShiftValue) >> Shift)); 39 | To[offset+2] = (uint8_t)(128 + ((YCbCrCrRI * Red + YCbCrCrGI * Green + YCbCrCrBI * Blue + HalfShiftValue) >> Shift)); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /MagicShow/src/main/cpp/bitmap/Conversion.h: -------------------------------------------------------------------------------- 1 | #ifndef _CONVERSION_H_ 2 | #define _CONVERSION_H_ 3 | 4 | #include 5 | #include 6 | 7 | const float YCbCrYRF = 0.299F; 8 | const float YCbCrYGF = 0.587F; 9 | const float YCbCrYBF = 0.114F; 10 | const float YCbCrCbRF = -0.168736F; 11 | const float YCbCrCbGF = -0.331264F; 12 | const float YCbCrCbBF = 0.500000F; 13 | const float YCbCrCrRF = 0.500000F; 14 | const float YCbCrCrGF = -0.418688F; 15 | const float YCbCrCrBF = -0.081312F; 16 | 17 | const float RGBRYF = 1.00000F; 18 | const float RGBRCbF = 0.0000F; 19 | const float RGBRCrF = 1.40200F; 20 | const float RGBGYF = 1.00000F; 21 | const float RGBGCbF = -0.34414F; 22 | const float RGBGCrF = -0.71414F; 23 | const float RGBBYF = 1.00000F; 24 | const float RGBBCbF = 1.77200F; 25 | const float RGBBCrF = 0.00000F; 26 | 27 | const int Shift = 20; 28 | const int HalfShiftValue = 1 << (Shift - 1); 29 | 30 | const int YCbCrYRI = (int)(YCbCrYRF * (1 << Shift) + 0.5); 31 | const int YCbCrYGI = (int)(YCbCrYGF * (1 << Shift) + 0.5); 32 | const int YCbCrYBI = (int)(YCbCrYBF * (1 << Shift) + 0.5); 33 | const int YCbCrCbRI = (int)(YCbCrCbRF * (1 << Shift) + 0.5); 34 | const int YCbCrCbGI = (int)(YCbCrCbGF * (1 << Shift) + 0.5); 35 | const int YCbCrCbBI = (int)(YCbCrCbBF * (1 << Shift) + 0.5); 36 | const int YCbCrCrRI = (int)(YCbCrCrRF * (1 << Shift) + 0.5); 37 | const int YCbCrCrGI = (int)(YCbCrCrGF * (1 << Shift) + 0.5); 38 | const int YCbCrCrBI = (int)(YCbCrCrBF * (1 << Shift) + 0.5); 39 | 40 | const int RGBRYI = (int)(RGBRYF * (1 << Shift) + 0.5); 41 | const int RGBRCbI = (int)(RGBRCbF * (1 << Shift) + 0.5); 42 | const int RGBRCrI = (int)(RGBRCrF * (1 << Shift) + 0.5); 43 | const int RGBGYI = (int)(RGBGYF * (1 << Shift) + 0.5); 44 | const int RGBGCbI = (int)(RGBGCbF * (1 << Shift) + 0.5); 45 | const int RGBGCrI = (int)(RGBGCrF * (1 << Shift) + 0.5); 46 | const int RGBBYI = (int)(RGBBYF * (1 << Shift) + 0.5); 47 | const int RGBBCbI = (int)(RGBBCbF * (1 << Shift) + 0.5); 48 | const int RGBBCrI = (int)(RGBBCrF * (1 << Shift) + 0.5); 49 | 50 | class Conversion 51 | { 52 | public: 53 | static void YCbCrToRGB(uint8_t* From, uint8_t* To, int Length); 54 | static void RGBToYCbCr(uint8_t* From, uint8_t* To, int Length); 55 | private: 56 | 57 | }; 58 | #endif 59 | -------------------------------------------------------------------------------- /MagicShow/src/main/cpp/bitmap/JniBitmap.h: -------------------------------------------------------------------------------- 1 | #ifndef _JNI_BITMAP_H_ 2 | #define _JNI_BITMAP_H_ 3 | #include 4 | 5 | typedef struct 6 | { 7 | uint8_t alpha, red, green, blue; 8 | } ARGB; 9 | 10 | class JniBitmap 11 | { 12 | public: 13 | uint32_t* _storedBitmapPixels; 14 | AndroidBitmapInfo _bitmapInfo; 15 | JniBitmap() 16 | { 17 | _storedBitmapPixels = NULL; 18 | } 19 | }; 20 | #endif 21 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/base/BaseActivity.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.base; 2 | 3 | import android.support.v4.app.FragmentActivity; 4 | import android.view.KeyEvent; 5 | 6 | /** 7 | * Created by hongli on 2017/8/22. 8 | */ 9 | 10 | public abstract class BaseActivity extends FragmentActivity{ 11 | protected void doFinishAction(){ 12 | finish(); 13 | } 14 | @Override 15 | public boolean onKeyDown(int keyCode, KeyEvent event) { 16 | if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 17 | doFinishAction(); 18 | return true; 19 | } 20 | return super.onKeyDown(keyCode, event); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/config/CameraConfig.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.config; 2 | 3 | /** 4 | * Created by hongli on 2017/9/1. 5 | */ 6 | 7 | public class CameraConfig { 8 | 9 | public static int orientation; 10 | 11 | public static int pictureWidth = 1280; 12 | 13 | public static int pictureHeight = 720; 14 | 15 | public static void setCameraConfig(int pictureWidth,int pictureHeight){ 16 | CameraConfig.pictureWidth = pictureWidth; 17 | CameraConfig.pictureHeight = pictureHeight; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/config/PathConfig.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.config; 2 | 3 | import android.os.Environment; 4 | 5 | /** 6 | * Created by hongli on 2017/8/30. 7 | */ 8 | 9 | public class PathConfig { 10 | private static String SD_DIRECTORY = "/Android/data/com.zero.lib/cache"; 11 | private static String tempCache = Environment.getExternalStorageDirectory().getAbsolutePath() + SD_DIRECTORY; 12 | public static void setTempCache(String path){ 13 | tempCache = path; 14 | } 15 | 16 | public static String getTempPath(){ 17 | return tempCache; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/entity/MagicShowResultEntity.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.entity; 2 | 3 | /** 4 | * Created by hongli on 2017/8/31. 5 | */ 6 | 7 | public class MagicShowResultEntity { 8 | private int resultCode; 9 | private String resultMsg; 10 | private String filePath; 11 | private int imageWidth; 12 | private int imageHeight; 13 | private int angle; 14 | 15 | public int getAngle() { 16 | return angle; 17 | } 18 | 19 | public void setAngle(int angle) { 20 | this.angle = angle; 21 | } 22 | 23 | public int getResultCode() { 24 | return resultCode; 25 | } 26 | 27 | public void setResultCode(int resultCode) { 28 | this.resultCode = resultCode; 29 | } 30 | 31 | public String getResultMsg() { 32 | return resultMsg; 33 | } 34 | 35 | public void setResultMsg(String resultMsg) { 36 | this.resultMsg = resultMsg; 37 | } 38 | 39 | public String getFilePath() { 40 | return filePath; 41 | } 42 | 43 | public void setFilePath(String filePath) { 44 | this.filePath = filePath; 45 | } 46 | 47 | public int getImageWidth() { 48 | return imageWidth; 49 | } 50 | 51 | public void setImageWidth(int imageWidth) { 52 | this.imageWidth = imageWidth; 53 | } 54 | 55 | public int getImageHeight() { 56 | return imageHeight; 57 | } 58 | 59 | public void setImageHeight(int imageHeight) { 60 | this.imageHeight = imageHeight; 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/iface/CameraShootCallBack.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.iface; 2 | 3 | import com.zero.magicshow.common.entity.MagicShowResultEntity; 4 | 5 | /** 6 | * Created by hongli on 2017/9/1. 7 | */ 8 | 9 | public interface CameraShootCallBack { 10 | public abstract void onCompentFinished(MagicShowResultEntity magicShowResultEntity); 11 | } 12 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/iface/DialogYesOrNoCallBack.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.iface; 2 | 3 | /** 4 | * Created by hongli on 2017/8/30. 5 | */ 6 | 7 | public interface DialogYesOrNoCallBack { 8 | public void onYesClick(); 9 | public void onNoClick(); 10 | } 11 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/iface/GravityCallBack.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.iface; 2 | 3 | /** 4 | * Created by hongli on 2017/9/1. 5 | */ 6 | 7 | public interface GravityCallBack { 8 | public void onGravityChange(int direction); 9 | } 10 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/iface/ImageEditCallBack.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.iface; 2 | 3 | import com.zero.magicshow.common.entity.MagicShowResultEntity; 4 | 5 | /** 6 | * Created by hongli on 2017/8/31. 7 | */ 8 | 9 | public interface ImageEditCallBack { 10 | public abstract void onCompentFinished(MagicShowResultEntity magicShowResultEntity); 11 | } 12 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/iface/MagicListener.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.iface; 2 | 3 | /** 4 | * Created by hongli on 2017/8/23. 5 | */ 6 | 7 | public interface MagicListener { 8 | public void onEnd(); 9 | } 10 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/utils/CameraBitmapUtil.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.utils; 2 | 3 | import android.app.Activity; 4 | import android.graphics.Bitmap; 5 | import android.graphics.Matrix; 6 | import android.hardware.Camera; 7 | import android.view.Surface; 8 | 9 | /** 10 | * Created by hongli on 2017/12/14. 11 | */ 12 | 13 | public class CameraBitmapUtil { 14 | 15 | public static Bitmap handlerCameraBitmap(Activity activity, Bitmap takeBitmap,int cameraId) { 16 | Matrix matrix = new Matrix(); 17 | matrix.postRotate(getCameraDisplayOrientation(activity, cameraId)); 18 | matrix.postScale(1, cameraId == 1 ? -1 : 1); 19 | Bitmap cropRotateScaled = Bitmap.createBitmap(takeBitmap, 0, 0, takeBitmap.getWidth(), takeBitmap.getHeight(), matrix, true); 20 | if (cropRotateScaled != takeBitmap) { 21 | takeBitmap.recycle(); 22 | } 23 | return cropRotateScaled; 24 | } 25 | 26 | public static int getCameraDisplayOrientation(Activity activity,int cameraId) { 27 | int result = 90; 28 | try { 29 | android.hardware.Camera.CameraInfo info = new android.hardware.Camera.CameraInfo(); 30 | android.hardware.Camera.getCameraInfo(cameraId, info); 31 | int rotation = activity.getWindowManager().getDefaultDisplay().getRotation(); 32 | int degrees = 0; 33 | switch (rotation) { 34 | case Surface.ROTATION_0: 35 | degrees = 0; 36 | break; 37 | case Surface.ROTATION_90: 38 | degrees = 90; 39 | break; 40 | case Surface.ROTATION_180: 41 | degrees = 180; 42 | break; 43 | case Surface.ROTATION_270: 44 | degrees = 270; 45 | break; 46 | } 47 | 48 | if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { 49 | result = (info.orientation + degrees) % 360; 50 | result = (360 - result) % 360; // compensate the mirror 51 | } else { // back-facing 52 | result = (info.orientation - degrees + 360) % 360; 53 | } 54 | } catch (Exception e) { 55 | e.printStackTrace(); 56 | } 57 | return result; 58 | 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/utils/DateUtils.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.utils; 2 | 3 | import com.zero.zerolib.util.DateUtil; 4 | 5 | import java.text.SimpleDateFormat; 6 | import java.util.Date; 7 | 8 | /** 9 | * Created by hongli on 2017/8/30. 10 | */ 11 | 12 | public class DateUtils extends DateUtil{ 13 | /** 14 | * 获取时间戳 15 | * @return 20180521172011 16 | */ 17 | public static String getTimeStamp(){ 18 | SimpleDateFormat sim = new SimpleDateFormat("yyyyMMddHHmmss"); 19 | try { 20 | return sim.format(new Date()); 21 | }catch(Exception e){ 22 | e.printStackTrace(); 23 | } 24 | return ""; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/utils/MagicParams.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.utils; 2 | 3 | import android.content.Context; 4 | import android.os.Environment; 5 | 6 | import com.zero.magicshow.common.base.MagicBaseView; 7 | 8 | /** 9 | * Created by why8222 on 2016/2/26. 10 | */ 11 | public class MagicParams { 12 | public static Context context; 13 | public static MagicBaseView magicBaseView; 14 | 15 | public static String videoPath = Environment.getExternalStorageDirectory().getPath(); 16 | public static String videoName = "MagicCamera_test.mp4"; 17 | 18 | public static int beautyLevel = 0; 19 | 20 | public MagicParams() { 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/utils/Rotation.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 CyberAgent 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.zero.magicshow.common.utils; 18 | 19 | public enum Rotation { 20 | NORMAL, ROTATION_90, ROTATION_180, ROTATION_270; 21 | 22 | /** 23 | * Retrieves the int representation of the Rotation. 24 | * 25 | * @return 0, 90, 180 or 270 26 | */ 27 | public int asInt() { 28 | switch (this) { 29 | case NORMAL: return 0; 30 | case ROTATION_90: return 90; 31 | case ROTATION_180: return 180; 32 | case ROTATION_270: return 270; 33 | default: throw new IllegalStateException("Unknown Rotation!"); 34 | } 35 | } 36 | 37 | /** 38 | * Create a Rotation from an integer. Needs to be either 0, 90, 180 or 270. 39 | * 40 | * @param rotation 0, 90, 180 or 270 41 | * @return Rotation object 42 | */ 43 | public static Rotation fromInt(int rotation) { 44 | switch (rotation) { 45 | case 0: return NORMAL; 46 | case 90: return ROTATION_90; 47 | case 180: return ROTATION_180; 48 | case 270: return ROTATION_270; 49 | case 360: return NORMAL; 50 | default: throw new IllegalStateException( 51 | rotation + " is an unknown rotation. Needs to be either 0, 90, 180 or 270!"); 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/utils/SavePictureTask.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.utils; 2 | 3 | import android.graphics.Bitmap; 4 | import android.os.AsyncTask; 5 | 6 | import com.zero.magicshow.common.entity.MagicShowResultEntity; 7 | 8 | import java.io.File; 9 | import java.io.FileNotFoundException; 10 | import java.io.FileOutputStream; 11 | import java.io.IOException; 12 | 13 | public class SavePictureTask extends AsyncTask{ 14 | 15 | private OnPictureSaveListener onPictureSaveListener; 16 | private File file; 17 | 18 | public SavePictureTask(File file, OnPictureSaveListener listener){ 19 | this.onPictureSaveListener = listener; 20 | this.file = file; 21 | } 22 | 23 | @Override 24 | protected void onPreExecute() { 25 | super.onPreExecute(); 26 | } 27 | 28 | @Override 29 | protected void onPostExecute(final MagicShowResultEntity result) { 30 | if(result != null){ 31 | if (onPictureSaveListener != null){ 32 | onPictureSaveListener.onSaved(result); 33 | } 34 | // BaseUtil.scanFile(result); 35 | } 36 | } 37 | 38 | @Override 39 | protected MagicShowResultEntity doInBackground(Bitmap... params) { 40 | if(file == null) 41 | return null; 42 | MagicShowResultEntity resultEntity = new MagicShowResultEntity(); 43 | resultEntity.setAngle(params[0].getHeight() > params[0].getWidth() ? 90 : 0); 44 | resultEntity.setFilePath(saveBitmap(params[0])); 45 | return resultEntity; 46 | } 47 | 48 | private String saveBitmap(Bitmap bitmap) { 49 | if (file.exists()) { 50 | file.delete(); 51 | } 52 | try { 53 | // Log.e("HongLi","bitmap degree:" + bitmap.getConfig()); 54 | FileOutputStream out = new FileOutputStream(file); 55 | bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); 56 | out.flush(); 57 | out.close(); 58 | bitmap.recycle(); 59 | return file.toString(); 60 | } catch (FileNotFoundException e) { 61 | e.printStackTrace(); 62 | } catch (IOException e) { 63 | e.printStackTrace(); 64 | } 65 | return null; 66 | } 67 | 68 | public interface OnPictureSaveListener{ 69 | void onSaved(MagicShowResultEntity resultEntity); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/common/utils/ZeroSubject.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.common.utils; 2 | 3 | import rx.functions.Action1; 4 | import rx.subjects.Subject; 5 | 6 | /** 7 | * Created by hongli on 2017/8/31. 8 | */ 9 | 10 | public class ZeroSubject{ 11 | private int actionType; 12 | private Subject subject; 13 | private Action1 action; 14 | public ZeroSubject(Subject subject, int actionType, Action1 action) { 15 | this.actionType = actionType; 16 | this.subject = subject; 17 | this.action = action; 18 | } 19 | 20 | public int getActionType(){ 21 | return actionType; 22 | } 23 | 24 | public Subject getSubject(){ 25 | return subject; 26 | } 27 | 28 | public Action1 getAction() { 29 | return action; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/beautify/MagicJni.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.beautify; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | import java.nio.ByteBuffer; 6 | 7 | /** 8 | * Created by why8222 on 2016/2/29. 9 | */ 10 | public class MagicJni { 11 | static{ 12 | System.loadLibrary("MagicJni"); 13 | } 14 | //初始化 15 | public static native void jniInitMagicBeautify(ByteBuffer handler); 16 | public static native void jniUnInitMagicBeautify(); 17 | //局部均方差磨皮 18 | public static native void jniStartSkinSmooth(float denoiseLevel); 19 | //log曲线美白 20 | public static native void jniStartWhiteSkin(float whitenLevel); 21 | //Bitmap操作 22 | public static native ByteBuffer jniStoreBitmapData(Bitmap bitmap); 23 | public static native void jniFreeBitmapData(ByteBuffer handler); 24 | public static native Bitmap jniGetBitmapFromStoredBitmapData(ByteBuffer handler); 25 | } 26 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/camera/utils/CameraInfo.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.camera.utils; 2 | 3 | /** 4 | * Created by why8222 on 2016/2/25. 5 | */ 6 | public class CameraInfo { 7 | 8 | public int previewWidth; 9 | 10 | public int previewHeight; 11 | 12 | public int orientation; 13 | 14 | public boolean isFront; 15 | 16 | public int pictureWidth; 17 | 18 | public int pictureHeight; 19 | } 20 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/camera/utils/CameraUtils.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.camera.utils; 2 | 3 | import android.hardware.Camera; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Created by why8222 on 2016/2/25. 9 | */ 10 | public class CameraUtils { 11 | 12 | public static Camera.Size getLargePictureSize(Camera camera){ 13 | if(camera != null){ 14 | List sizes = camera.getParameters().getSupportedPictureSizes(); 15 | Camera.Size temp = sizes.get(0); 16 | for(int i = 1;i < sizes.size();i ++){ 17 | float scale = (float)(sizes.get(i).height) / sizes.get(i).width; 18 | if(temp.width < sizes.get(i).width && scale < 0.6f && scale > 0.5f) 19 | temp = sizes.get(i); 20 | } 21 | return temp; 22 | } 23 | return null; 24 | } 25 | 26 | public static Camera.Size getLargePreviewSize(Camera camera){ 27 | if(camera != null){ 28 | List sizes = camera.getParameters().getSupportedPreviewSizes(); 29 | Camera.Size temp = sizes.get(0); 30 | for(int i = 1;i < sizes.size();i ++){ 31 | if(temp.width < sizes.get(i).width) 32 | temp = sizes.get(i); 33 | } 34 | return temp; 35 | } 36 | return null; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicBeautyFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.MagicParams; 8 | import com.zero.magicshow.common.utils.OpenGlUtils; 9 | 10 | /** 11 | * Created by Administrator on 2016/5/22. 12 | */ 13 | public class MagicBeautyFilter extends GPUImageFilter{ 14 | private int mSingleStepOffsetLocation; 15 | private int mParamsLocation; 16 | 17 | public MagicBeautyFilter(){ 18 | super(NO_FILTER_VERTEX_SHADER , 19 | OpenGlUtils.readShaderFromRawResource(R.raw.beauty)); 20 | } 21 | 22 | protected void onInit() { 23 | super.onInit(); 24 | mSingleStepOffsetLocation = GLES20.glGetUniformLocation(getProgram(), "singleStepOffset"); 25 | mParamsLocation = GLES20.glGetUniformLocation(getProgram(), "params"); 26 | setBeautyLevel(MagicParams.beautyLevel); 27 | } 28 | 29 | private void setTexelSize(final float w, final float h) { 30 | setFloatVec2(mSingleStepOffsetLocation, new float[] {2.0f / w, 2.0f / h}); 31 | } 32 | 33 | @Override 34 | public void onInputSizeChanged(final int width, final int height) { 35 | super.onInputSizeChanged(width, height); 36 | setTexelSize(width, height); 37 | } 38 | 39 | public void setBeautyLevel(int level){ 40 | switch (level) { 41 | case 1: 42 | setFloat(mParamsLocation, 1.0f); 43 | break; 44 | case 2: 45 | setFloat(mParamsLocation, 0.8f); 46 | break; 47 | case 3: 48 | setFloat(mParamsLocation,0.6f); 49 | break; 50 | case 4: 51 | setFloat(mParamsLocation, 0.4f); 52 | break; 53 | case 5: 54 | setFloat(mParamsLocation,0.33f); 55 | break; 56 | default: 57 | setFloat(mParamsLocation,0.0f); 58 | break; 59 | } 60 | } 61 | 62 | public void onBeautyLevelChanged(){ 63 | setBeautyLevel(MagicParams.beautyLevel); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicCrayonFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.OpenGlUtils; 8 | 9 | public class MagicCrayonFilter extends GPUImageFilter{ 10 | 11 | private int mSingleStepOffsetLocation; 12 | //1.0 - 5.0 13 | private int mStrengthLocation; 14 | 15 | public MagicCrayonFilter(){ 16 | super(NO_FILTER_VERTEX_SHADER, OpenGlUtils.readShaderFromRawResource(R.raw.crayon)); 17 | } 18 | 19 | protected void onInit() { 20 | super.onInit(); 21 | mSingleStepOffsetLocation = GLES20.glGetUniformLocation(getProgram(), "singleStepOffset"); 22 | mStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength"); 23 | setFloat(mStrengthLocation, 2.0f); 24 | } 25 | 26 | protected void onDestroy() { 27 | super.onDestroy(); 28 | } 29 | 30 | protected void onInitialized(){ 31 | super.onInitialized(); 32 | setFloat(mStrengthLocation, 0.5f); 33 | } 34 | 35 | private void setTexelSize(final float w, final float h) { 36 | setFloatVec2(mSingleStepOffsetLocation, new float[] {1.0f / w, 1.0f / h}); 37 | } 38 | 39 | @Override 40 | public void onInputSizeChanged(final int width, final int height) { 41 | super.onInputSizeChanged(width, height); 42 | setTexelSize(width, height); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicFairytaleFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import com.zero.magicshow.core.filter.base.MagicLookupFilter; 4 | 5 | public class MagicFairytaleFilter extends MagicLookupFilter{ 6 | 7 | public MagicFairytaleFilter() { 8 | super("filter/fairy_tale.png"); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicInkwellFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.MagicParams; 8 | import com.zero.magicshow.common.utils.OpenGlUtils; 9 | 10 | public class MagicInkwellFilter extends GPUImageFilter{ 11 | private int[] inputTextureHandles = {-1}; 12 | private int[] inputTextureUniformLocations = {-1}; 13 | private int mGLStrengthLocation; 14 | 15 | public MagicInkwellFilter(){ 16 | super(NO_FILTER_VERTEX_SHADER, OpenGlUtils.readShaderFromRawResource(R.raw.inkwell)); 17 | } 18 | 19 | public void onDestroy() { 20 | super.onDestroy(); 21 | GLES20.glDeleteTextures(1, inputTextureHandles, 0); 22 | for(int i = 0; i < inputTextureHandles.length; i++) 23 | inputTextureHandles[i] = -1; 24 | } 25 | 26 | protected void onDrawArraysAfter(){ 27 | for(int i = 0; i < inputTextureHandles.length 28 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 29 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3)); 30 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); 31 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0); 32 | } 33 | } 34 | 35 | protected void onDrawArraysPre(){ 36 | for(int i = 0; i < inputTextureHandles.length 37 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 38 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) ); 39 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]); 40 | GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3)); 41 | } 42 | } 43 | 44 | protected void onInit(){ 45 | super.onInit(); 46 | for(int i=0; i < inputTextureUniformLocations.length; i++) 47 | inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i)); 48 | mGLStrengthLocation = GLES20.glGetUniformLocation(mGLProgId, 49 | "strength"); 50 | } 51 | 52 | protected void onInitialized(){ 53 | super.onInitialized(); 54 | setFloat(mGLStrengthLocation, 1.0f); 55 | runOnDraw(new Runnable(){ 56 | public void run(){ 57 | inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicParams.context, "filter/inkwellmap.png"); 58 | } 59 | }); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicKevinFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.MagicParams; 8 | import com.zero.magicshow.common.utils.OpenGlUtils; 9 | 10 | public class MagicKevinFilter extends GPUImageFilter{ 11 | private int[] inputTextureHandles = {-1}; 12 | private int[] inputTextureUniformLocations = {-1}; 13 | private int mGLStrengthLocation; 14 | 15 | public MagicKevinFilter(){ 16 | super(NO_FILTER_VERTEX_SHADER, OpenGlUtils.readShaderFromRawResource(R.raw.kevin_new)); 17 | } 18 | 19 | protected void onDestroy() { 20 | super.onDestroy(); 21 | GLES20.glDeleteTextures(1, inputTextureHandles, 0); 22 | for(int i = 0; i < inputTextureHandles.length; i++) 23 | inputTextureHandles[i] = -1; 24 | } 25 | 26 | protected void onDrawArraysAfter(){ 27 | for(int i = 0; i < inputTextureHandles.length 28 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 29 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3)); 30 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); 31 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0); 32 | } 33 | } 34 | 35 | protected void onDrawArraysPre(){ 36 | for(int i = 0; i < inputTextureHandles.length 37 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 38 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) ); 39 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]); 40 | GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3)); 41 | } 42 | } 43 | 44 | protected void onInit(){ 45 | super.onInit(); 46 | for(int i=0; i < inputTextureUniformLocations.length; i++) 47 | inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i)); 48 | mGLStrengthLocation = GLES20.glGetUniformLocation(mGLProgId, 49 | "strength"); 50 | } 51 | 52 | protected void onInitialized(){ 53 | super.onInitialized(); 54 | setFloat(mGLStrengthLocation, 1.0f); 55 | runOnDraw(new Runnable(){ 56 | public void run(){ 57 | inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicParams.context, "filter/kelvinmap.png"); 58 | } 59 | }); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicLomoFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.MagicParams; 8 | import com.zero.magicshow.common.utils.OpenGlUtils; 9 | 10 | public class MagicLomoFilter extends GPUImageFilter{ 11 | private int[] inputTextureHandles = {-1,-1}; 12 | private int[] inputTextureUniformLocations = {-1,-1}; 13 | private int mGLStrengthLocation; 14 | 15 | public MagicLomoFilter(){ 16 | super(NO_FILTER_VERTEX_SHADER, OpenGlUtils.readShaderFromRawResource(R.raw.lomo)); 17 | } 18 | 19 | protected void onDestroy() { 20 | super.onDestroy(); 21 | GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0); 22 | for(int i = 0; i < inputTextureHandles.length; i++) 23 | inputTextureHandles[i] = -1; 24 | } 25 | 26 | protected void onDrawArraysAfter(){ 27 | for(int i = 0; i < inputTextureHandles.length 28 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 29 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3)); 30 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); 31 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0); 32 | } 33 | } 34 | 35 | protected void onDrawArraysPre(){ 36 | for(int i = 0; i < inputTextureHandles.length 37 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 38 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) ); 39 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]); 40 | GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3)); 41 | } 42 | } 43 | 44 | protected void onInit(){ 45 | super.onInit(); 46 | for(int i=0; i < inputTextureUniformLocations.length; i++) 47 | inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i)); 48 | mGLStrengthLocation = GLES20.glGetUniformLocation(mGLProgId, 49 | "strength"); 50 | } 51 | 52 | protected void onInitialized(){ 53 | super.onInitialized(); 54 | setFloat(mGLStrengthLocation, 1.0f); 55 | runOnDraw(new Runnable(){ 56 | public void run(){ 57 | inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicParams.context, "filter/lomomap_new.png"); 58 | inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicParams.context, "filter/vignette_map.png"); 59 | } 60 | }); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicN1977Filter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.MagicParams; 8 | import com.zero.magicshow.common.utils.OpenGlUtils; 9 | 10 | public class MagicN1977Filter extends GPUImageFilter{ 11 | private int[] inputTextureHandles = {-1,-1}; 12 | private int[] inputTextureUniformLocations = {-1,-1}; 13 | private int mGLStrengthLocation; 14 | 15 | public MagicN1977Filter(){ 16 | super(NO_FILTER_VERTEX_SHADER, OpenGlUtils.readShaderFromRawResource(R.raw.n1977)); 17 | } 18 | 19 | protected void onDrawArraysAfter(){ 20 | for(int i = 0; i < inputTextureHandles.length 21 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 22 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3)); 23 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); 24 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0); 25 | } 26 | } 27 | 28 | protected void onDrawArraysPre(){ 29 | for(int i = 0; i < inputTextureHandles.length 30 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 31 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) ); 32 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]); 33 | GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3)); 34 | } 35 | } 36 | 37 | protected void onInit(){ 38 | super.onInit(); 39 | for(int i=0; i < inputTextureUniformLocations.length; i++) 40 | inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i)); 41 | mGLStrengthLocation = GLES20.glGetUniformLocation(mGLProgId, 42 | "strength"); 43 | } 44 | 45 | protected void onInitialized(){ 46 | super.onInitialized(); 47 | setFloat(mGLStrengthLocation, 1.0f); 48 | runOnDraw(new Runnable(){ 49 | public void run(){ 50 | inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicParams.context, "filter/n1977map.png"); 51 | inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicParams.context, "filter/n1977blowout.png"); 52 | } 53 | }); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicNashvilleFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.MagicParams; 8 | import com.zero.magicshow.common.utils.OpenGlUtils; 9 | 10 | public class MagicNashvilleFilter extends GPUImageFilter{ 11 | private int[] inputTextureHandles = {-1}; 12 | private int[] inputTextureUniformLocations = {-1}; 13 | private int mGLStrengthLocation; 14 | 15 | public MagicNashvilleFilter(){ 16 | super(NO_FILTER_VERTEX_SHADER, OpenGlUtils.readShaderFromRawResource(R.raw.nashville)); 17 | } 18 | 19 | public void onDestroy() { 20 | super.onDestroy(); 21 | GLES20.glDeleteTextures(1, inputTextureHandles, 0); 22 | for(int i = 0; i < inputTextureHandles.length; i++) 23 | inputTextureHandles[i] = -1; 24 | } 25 | 26 | protected void onDrawArraysAfter(){ 27 | for(int i = 0; i < inputTextureHandles.length 28 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 29 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3)); 30 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); 31 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0); 32 | } 33 | } 34 | 35 | protected void onDrawArraysPre(){ 36 | for(int i = 0; i < inputTextureHandles.length 37 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 38 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) ); 39 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]); 40 | GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3)); 41 | } 42 | } 43 | 44 | public void onInit(){ 45 | super.onInit(); 46 | for(int i=0; i < inputTextureUniformLocations.length; i++) 47 | inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i)); 48 | mGLStrengthLocation = GLES20.glGetUniformLocation(mGLProgId, 49 | "strength"); 50 | } 51 | 52 | public void onInitialized(){ 53 | super.onInitialized(); 54 | setFloat(mGLStrengthLocation, 1.0f); 55 | runOnDraw(new Runnable(){ 56 | public void run(){ 57 | inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicParams.context, "filter/nashvillemap.png"); 58 | } 59 | }); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicPixarFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.MagicParams; 8 | import com.zero.magicshow.common.utils.OpenGlUtils; 9 | 10 | public class MagicPixarFilter extends GPUImageFilter{ 11 | private int[] inputTextureHandles = {-1}; 12 | private int[] inputTextureUniformLocations = {-1}; 13 | private int mGLStrengthLocation; 14 | 15 | public MagicPixarFilter(){ 16 | super(NO_FILTER_VERTEX_SHADER, OpenGlUtils.readShaderFromRawResource(R.raw.pixar)); 17 | } 18 | 19 | public void onDestroy() { 20 | super.onDestroy(); 21 | GLES20.glDeleteTextures(1, inputTextureHandles, 0); 22 | for(int i = 0; i < inputTextureHandles.length; i++) 23 | inputTextureHandles[i] = -1; 24 | } 25 | 26 | protected void onDrawArraysAfter(){ 27 | for(int i = 0; i < inputTextureHandles.length 28 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 29 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3)); 30 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); 31 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0); 32 | } 33 | } 34 | 35 | protected void onDrawArraysPre(){ 36 | for(int i = 0; i < inputTextureHandles.length 37 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 38 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) ); 39 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]); 40 | GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3)); 41 | } 42 | } 43 | 44 | public void onInit(){ 45 | super.onInit(); 46 | for(int i=0; i < inputTextureUniformLocations.length; i++) 47 | inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i)); 48 | mGLStrengthLocation = GLES20.glGetUniformLocation(mGLProgId, 49 | "strength"); 50 | } 51 | 52 | public void onInitialized(){ 53 | super.onInitialized(); 54 | setFloat(mGLStrengthLocation, 1.0f); 55 | runOnDraw(new Runnable(){ 56 | public void run(){ 57 | inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicParams.context, "filter/pixar_curves.png"); 58 | } 59 | }); 60 | } 61 | } -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicRiseFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.MagicParams; 8 | import com.zero.magicshow.common.utils.OpenGlUtils; 9 | 10 | public class MagicRiseFilter extends GPUImageFilter{ 11 | private int[] inputTextureHandles = {-1,-1,-1}; 12 | private int[] inputTextureUniformLocations = {-1,-1,-1}; 13 | 14 | public MagicRiseFilter(){ 15 | super(NO_FILTER_VERTEX_SHADER, OpenGlUtils.readShaderFromRawResource(R.raw.rise)); 16 | } 17 | 18 | public void onDestroy() { 19 | super.onDestroy(); 20 | GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0); 21 | for(int i = 0; i < inputTextureHandles.length; i++) 22 | inputTextureHandles[i] = -1; 23 | } 24 | 25 | protected void onDrawArraysAfter(){ 26 | for(int i = 0; i < inputTextureHandles.length 27 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 28 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3)); 29 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); 30 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0); 31 | } 32 | } 33 | 34 | protected void onDrawArraysPre(){ 35 | for(int i = 0; i < inputTextureHandles.length 36 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 37 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) ); 38 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]); 39 | GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3)); 40 | } 41 | } 42 | 43 | public void onInit(){ 44 | super.onInit(); 45 | for(int i=0; i < inputTextureUniformLocations.length; i++){ 46 | inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i)); 47 | } 48 | } 49 | 50 | public void onInitialized(){ 51 | super.onInitialized(); 52 | runOnDraw(new Runnable(){ 53 | public void run(){ 54 | inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicParams.context, "filter/blackboard1024.png"); 55 | inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicParams.context, "filter/overlaymap.png"); 56 | inputTextureHandles[2] = OpenGlUtils.loadTexture(MagicParams.context, "filter/risemap.png"); 57 | } 58 | }); 59 | } 60 | } -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicSketchFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.OpenGlUtils; 8 | 9 | public class MagicSketchFilter extends GPUImageFilter{ 10 | 11 | private int mSingleStepOffsetLocation; 12 | //0.0 - 1.0 13 | private int mStrengthLocation; 14 | 15 | public MagicSketchFilter(){ 16 | super(NO_FILTER_VERTEX_SHADER, OpenGlUtils.readShaderFromRawResource(R.raw.sketch)); 17 | } 18 | 19 | protected void onInit() { 20 | super.onInit(); 21 | mSingleStepOffsetLocation = GLES20.glGetUniformLocation(getProgram(), "singleStepOffset"); 22 | mStrengthLocation = GLES20.glGetUniformLocation(getProgram(), "strength"); 23 | } 24 | 25 | protected void onDestroy() { 26 | super.onDestroy(); 27 | } 28 | 29 | private void setTexelSize(final float w, final float h) { 30 | setFloatVec2(mSingleStepOffsetLocation, new float[] {1.0f / w, 1.0f / h}); 31 | } 32 | 33 | protected void onInitialized(){ 34 | super.onInitialized(); 35 | setFloat(mStrengthLocation, 0.5f); 36 | } 37 | 38 | @Override 39 | public void onInputSizeChanged(final int width, final int height) { 40 | super.onInputSizeChanged(width, height); 41 | setTexelSize(width, height); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicValenciaFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.MagicParams; 8 | import com.zero.magicshow.common.utils.OpenGlUtils; 9 | 10 | public class MagicValenciaFilter extends GPUImageFilter{ 11 | private int[] inputTextureHandles = {-1,-1}; 12 | private int[] inputTextureUniformLocations = {-1,-1}; 13 | private int mGLStrengthLocation; 14 | 15 | public MagicValenciaFilter(){ 16 | super(NO_FILTER_VERTEX_SHADER, OpenGlUtils.readShaderFromRawResource(R.raw.valencia)); 17 | } 18 | 19 | protected void onDrawArraysAfter(){ 20 | for(int i = 0; i < inputTextureHandles.length 21 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 22 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3)); 23 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); 24 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0); 25 | } 26 | } 27 | 28 | protected void onDrawArraysPre(){ 29 | for(int i = 0; i < inputTextureHandles.length 30 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 31 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) ); 32 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]); 33 | GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3)); 34 | } 35 | } 36 | 37 | public void onInit(){ 38 | super.onInit(); 39 | for(int i = 0; i < inputTextureUniformLocations.length; i++) 40 | inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i)); 41 | mGLStrengthLocation = GLES20.glGetUniformLocation(mGLProgId, 42 | "strength"); 43 | } 44 | 45 | public void onDestroy() { 46 | super.onDestroy(); 47 | GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0); 48 | for(int i = 0; i < inputTextureHandles.length; i++) 49 | inputTextureHandles[i] = -1; 50 | } 51 | 52 | public void onInitialized(){ 53 | super.onInitialized(); 54 | setFloat(mGLStrengthLocation, 1.0f); 55 | runOnDraw(new Runnable(){ 56 | public void run(){ 57 | inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicParams.context, "filter/valenciamap.png"); 58 | inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicParams.context, "filter/valenciagradientmap.png"); 59 | } 60 | }); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicWaldenFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.MagicParams; 8 | import com.zero.magicshow.common.utils.OpenGlUtils; 9 | 10 | public class MagicWaldenFilter extends GPUImageFilter{ 11 | private int[] inputTextureHandles = {-1,-1}; 12 | private int[] inputTextureUniformLocations = {-1,-1}; 13 | private int mGLStrengthLocation; 14 | 15 | public MagicWaldenFilter(){ 16 | super(NO_FILTER_VERTEX_SHADER, OpenGlUtils.readShaderFromRawResource(R.raw.walden)); 17 | } 18 | 19 | public void onDestroy() { 20 | super.onDestroy(); 21 | GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0); 22 | for(int i = 0; i < inputTextureHandles.length; i++) 23 | inputTextureHandles[i] = -1; 24 | } 25 | 26 | protected void onDrawArraysAfter(){ 27 | for(int i = 0; i < inputTextureHandles.length 28 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 29 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3)); 30 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); 31 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0); 32 | } 33 | } 34 | 35 | protected void onDrawArraysPre(){ 36 | for(int i = 0; i < inputTextureHandles.length 37 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 38 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) ); 39 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]); 40 | GLES20.glUniform1i(inputTextureUniformLocations[i], (i+3)); 41 | } 42 | } 43 | 44 | public void onInit(){ 45 | super.onInit(); 46 | for(int i = 0; i < inputTextureUniformLocations.length; i++) 47 | inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i)); 48 | mGLStrengthLocation = GLES20.glGetUniformLocation(mGLProgId, 49 | "strength"); 50 | } 51 | 52 | public void onInitialized(){ 53 | super.onInitialized(); 54 | setFloat(mGLStrengthLocation, 1.0f); 55 | runOnDraw(new Runnable(){ 56 | public void run(){ 57 | inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicParams.context, "filter/walden_map.png"); 58 | inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicParams.context, "filter/vignette_map.png"); 59 | } 60 | }); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/advanced/MagicXproIIFilter.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.advanced; 2 | 3 | import android.opengl.GLES20; 4 | 5 | import com.zero.magicshow.R; 6 | import com.zero.magicshow.core.filter.base.gpuimage.GPUImageFilter; 7 | import com.zero.magicshow.common.utils.MagicParams; 8 | import com.zero.magicshow.common.utils.OpenGlUtils; 9 | 10 | public class MagicXproIIFilter extends GPUImageFilter{ 11 | private int[] inputTextureHandles = {-1,-1}; 12 | private int[] inputTextureUniformLocations = {-1,-1}; 13 | private int mGLStrengthLocation; 14 | 15 | public MagicXproIIFilter(){ 16 | super(NO_FILTER_VERTEX_SHADER, OpenGlUtils.readShaderFromRawResource(R.raw.xproii_filter_shader)); 17 | } 18 | 19 | public void onDestroy() { 20 | super.onDestroy(); 21 | GLES20.glDeleteTextures(inputTextureHandles.length, inputTextureHandles, 0); 22 | for(int i = 0; i < inputTextureHandles.length; i++) 23 | inputTextureHandles[i] = -1; 24 | } 25 | 26 | protected void onDrawArraysAfter(){ 27 | for(int i = 0; i < inputTextureHandles.length 28 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 29 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3)); 30 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0); 31 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0); 32 | } 33 | } 34 | 35 | protected void onDrawArraysPre(){ 36 | for(int i = 0; i < inputTextureHandles.length 37 | && inputTextureHandles[i] != OpenGlUtils.NO_TEXTURE; i++){ 38 | GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + (i+3) ); 39 | GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, inputTextureHandles[i]); 40 | GLES20.glUniform1i(inputTextureUniformLocations[i], (i + 3)); 41 | } 42 | } 43 | 44 | public void onInit(){ 45 | super.onInit(); 46 | for(int i = 0; i < inputTextureUniformLocations.length; i++) 47 | inputTextureUniformLocations[i] = GLES20.glGetUniformLocation(getProgram(), "inputImageTexture"+(2+i)); 48 | mGLStrengthLocation = GLES20.glGetUniformLocation(mGLProgId, 49 | "strength"); 50 | } 51 | 52 | public void onInitialized(){ 53 | super.onInitialized(); 54 | setFloat(mGLStrengthLocation, 1.0f); 55 | runOnDraw(new Runnable(){ 56 | public void run(){ 57 | inputTextureHandles[0] = OpenGlUtils.loadTexture(MagicParams.context, "filter/xpromap.png"); 58 | inputTextureHandles[1] = OpenGlUtils.loadTexture(MagicParams.context, "filter/vignettemap_new.png"); 59 | } 60 | }); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/core/filter/utils/MagicFilterType.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.core.filter.utils; 2 | 3 | /** 4 | * Created by why8222 on 2016/2/25. 5 | */ 6 | public enum MagicFilterType { 7 | NONE, 8 | FAIRYTALE, 9 | SUNRISE, 10 | SUNSET, 11 | WHITECAT, 12 | BLACKCAT, 13 | SKINWHITEN, 14 | HEALTHY, 15 | SWEETS, 16 | ROMANCE, 17 | SAKURA, 18 | WARM, 19 | ANTIQUE, 20 | NOSTALGIA, 21 | CALM, 22 | LATTE, 23 | TENDER, 24 | COOL, 25 | EMERALD, 26 | EVERGREEN, 27 | CRAYON, 28 | SKETCH, 29 | AMARO, 30 | BRANNAN, 31 | BROOKLYN, 32 | EARLYBIRD, 33 | FREUD, 34 | HEFE, 35 | HUDSON, 36 | INKWELL, 37 | KEVIN, 38 | LOMO, 39 | N1977, 40 | NASHVILLE, 41 | PIXAR, 42 | RISE, 43 | SIERRA, 44 | SUTRO, 45 | TOASTER2, 46 | VALENCIA, 47 | WALDEN, 48 | XPROII, 49 | //image adjust 50 | CONTRAST, 51 | BRIGHTNESS, 52 | EXPOSURE, 53 | HUE, 54 | SATURATION, 55 | SHARPEN, 56 | IMAGE_ADJUST 57 | } 58 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/view/edit/ImageEditFragment.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.view.edit; 2 | 3 | import android.support.v4.app.Fragment; 4 | 5 | import com.zero.magicshow.common.iface.DialogYesOrNoCallBack; 6 | import com.zero.magicshow.common.utils.BaseUtil; 7 | import com.zero.magicshow.core.MagicEngine; 8 | 9 | public abstract class ImageEditFragment extends Fragment { 10 | protected onHideListener mOnHideListener; 11 | 12 | public void doFinishAction(){ 13 | if(isChanged()){ 14 | BaseUtil.openYesOrNoDialog(getActivity(), "是否应用修改?", "是否应用修改?", "是", "否", new DialogYesOrNoCallBack() { 15 | @Override 16 | public void onYesClick() { 17 | onDialogButtonClick(); 18 | MagicEngine.getInstance().commitImage(); 19 | } 20 | 21 | @Override 22 | public void onNoClick() { 23 | onDialogButtonClick(); 24 | MagicEngine.getInstance().restoreImage(); 25 | } 26 | }); 27 | }else if(null != mOnHideListener){ 28 | mOnHideListener.onAfterHide(); 29 | } 30 | } 31 | 32 | public void doSaveConfigeAction(){ 33 | if(isChanged()){ 34 | MagicEngine.getInstance().commitImage(); 35 | } 36 | if(mOnHideListener != null){ 37 | mOnHideListener.onAfterHide(); 38 | } 39 | } 40 | 41 | public void setOnHideListener(onHideListener l){ 42 | this.mOnHideListener = l; 43 | } 44 | 45 | protected abstract boolean isChanged(); 46 | 47 | protected void onDialogButtonClick(){ 48 | if(mOnHideListener != null){ 49 | mOnHideListener.onAfterHide(); 50 | } 51 | } 52 | 53 | public interface onHideListener{ 54 | void onAfterHide(); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/view/edit/iface/ImageEditNavListener.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.view.edit.iface; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * Created by hongli on 2017/8/22. 7 | */ 8 | 9 | public interface ImageEditNavListener { 10 | public void onClick(View view, String type); 11 | } 12 | -------------------------------------------------------------------------------- /MagicShow/src/main/java/com/zero/magicshow/viewmanager/CameraManager.java: -------------------------------------------------------------------------------- 1 | package com.zero.magicshow.viewmanager; 2 | 3 | import android.animation.ObjectAnimator; 4 | import android.animation.ValueAnimator; 5 | import android.widget.ImageView; 6 | 7 | /** 8 | * Created by hongli on 2017/9/1. 9 | */ 10 | 11 | public class CameraManager { 12 | public static ObjectAnimator getShutterAnim(ImageView btnShutter){ 13 | ObjectAnimator animator = ObjectAnimator.ofFloat(btnShutter,"rotation",0,360); 14 | animator.setDuration(500); 15 | animator.setRepeatCount(ValueAnimator.INFINITE); 16 | return animator; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /MagicShow/src/main/libs/zero.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/libs/zero.jar -------------------------------------------------------------------------------- /MagicShow/src/main/res/anim/bottom_sliding_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/anim/bottom_sliding_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/color/selector_image_back.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/color/selector_image_edit.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/color/selector_image_edit_yellow.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/button_take_pic_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/button_take_pic_normal.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/button_take_pic_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/button_take_pic_pressed.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/close_black_seq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/close_black_seq.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/close_blue_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/close_blue_round.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_contrast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_contrast.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_contrast_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_contrast_press.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_exposure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_exposure.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_exposure_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_exposure_press.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_hdr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_hdr.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_hdr_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_hdr_press.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_saturation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_saturation.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_saturation_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_saturation_press.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_sharpness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_sharpness.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_sharpness_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_sharpness_press.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_vibrance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_vibrance.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_vibrance_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_adjust_vibrance_press.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_done.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_done_disenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_done_disenable.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_bg_done_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_bg_done_press.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_color_hue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_color_hue.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/edit_color_hue_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/edit_color_hue_press.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_adds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_adds.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_adds_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_adds_blue.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_auto_beauty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_auto_beauty.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_auto_beauty_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_auto_beauty_pressed.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_cosmesis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_cosmesis.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_cosmesis_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_cosmesis_blue.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_edit.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_edit_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_edit_blue.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_effect.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_effect_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_effect_blue.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_frame.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_frame_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_frame_blue.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_skinprocess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_skinprocess.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/i_skinprocess_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/i_skinprocess_pressed.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/ic_camera_beauty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/ic_camera_beauty.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/ic_camera_beauty_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/ic_camera_beauty_pressed.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/ic_camera_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/ic_camera_filter.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/ic_collage_layout_filters_bar_close_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/ic_collage_layout_filters_bar_close_normal.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/ic_collage_layout_filters_bar_close_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/ic_collage_layout_filters_bar_close_pressed.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/ic_seekbar_smallsize_thumb_light_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/ic_seekbar_smallsize_thumb_light_normal.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/ic_seekbar_smallsize_thumb_light_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/ic_seekbar_smallsize_thumb_light_pressed.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/ic_seekbar_thumb_light_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/ic_seekbar_thumb_light_normal.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/ic_seekbar_thumb_light_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/ic_seekbar_thumb_light_pressed.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/ic_seekbar_thumb_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/ic_seekbar_thumb_normal.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/ic_seekbar_thumb_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/ic_seekbar_thumb_pressed.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/icon_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/icon_camera.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/icon_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/icon_video.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/image_edit_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/image_edit_back.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/image_edit_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/image_edit_save.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/mix_gallery_bottom_back_click.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/mix_gallery_bottom_back_click.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/mix_gallery_bottom_back_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/mix_gallery_bottom_back_normal.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/record_camera_switch_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/record_camera_switch_normal.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/record_camera_switch_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/record_camera_switch_press.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/seekbar_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/seekbar_bg.9.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/seekbar_bg_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/seekbar_bg_light.9.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/seekbar_primary_progress.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/seekbar_primary_progress.9.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/seekbar_transparent_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/seekbar_transparent_bg.9.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xhdpi/tooltip_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xhdpi/tooltip_bg.9.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/balance_lack_close_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/balance_lack_close_icon.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_1977.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_1977.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_amoro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_amoro.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_antique.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_antique.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_beauty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_beauty.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_blackcat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_blackcat.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_brannan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_brannan.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_brooklyn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_brooklyn.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_calm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_calm.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_cool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_cool.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_crayon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_crayon.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_earlybird.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_earlybird.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_emerald.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_emerald.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_evergreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_evergreen.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_fairytale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_fairytale.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_freud.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_freud.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_healthy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_healthy.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_hefe.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_hefe.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_hudson.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_hudson.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_inkwell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_inkwell.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_kevin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_kevin.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_latte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_latte.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_lomo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_lomo.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_nashville.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_nashville.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_nostalgia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_nostalgia.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_original.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_original.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_piaxr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_piaxr.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_rise.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_rise.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_romance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_romance.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sakura.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sakura.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sierra.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sierra.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sketch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sketch.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sunrise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sunrise.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sunset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sunset.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sutro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sutro.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sweets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_sweets.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_tender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_tender.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_toastero.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_toastero.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_valencia.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_valencia.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_walden.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_walden.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_warm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_warm.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_whitecat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_whitecat.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_xpro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/filter_thumb_xpro.jpg -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/image_edit_modify_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/image_edit_modify_close.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/image_edit_modify_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/image_edit_modify_save.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/take_filter_confirm_btn_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/take_filter_confirm_btn_skin_flat.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/take_filter_favorite_btn01_layer00_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/take_filter_favorite_btn01_layer00_skin_flat.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/take_filter_favorite_btn01_layer01_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/take_filter_favorite_btn01_layer01_skin_flat.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/take_filter_favorite_btn02_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/take_filter_favorite_btn02_skin_flat.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/take_filter_favorite_icon01_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/take_filter_favorite_icon01_skin_flat.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/take_filter_favorite_icon02_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/take_filter_favorite_icon02_skin_flat.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/take_filter_random_btn_skin_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/take_filter_random_btn_skin_flat.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable-xxhdpi/yes_or_no_dialog_line.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerochl/MagicShow/52438cced13edcdafbf529ba7f0ac68940887fa9/MagicShow/src/main/res/drawable-xxhdpi/yes_or_no_dialog_line.9.png -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/btn_camera_beauty.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/btn_camera_filter.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/btn_camera_shutter.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/btn_layout_filters_bar_close.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/corners_yuanjiao_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/seekbar_progress.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/seekbar_progress_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/seekbar_thumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/seekbar_thumb_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_filter_favorite_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_filter_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_adds.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_back.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_beauty.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_edit.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_edit_adjust_bright.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_edit_adjust_contrast.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_edit_adjust_exposure.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_edit_adjust_hue.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_edit_adjust_saturation.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_edit_adjust_sharpness.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_edit_adjust_vibrance.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_filter.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_fragment_skin.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_frame.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_image_save.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/selector_rewardcamera.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/drawable/take_filter_favorite_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MagicShow/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 |