├── .gitignore ├── .idea └── .gitignore ├── External-Tutorial-GridToPager ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── google │ │ └── samples │ │ └── gridtopager │ │ └── MainActivityTest.kt │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── google │ │ └── samples │ │ └── gridtopager │ │ ├── MainActivity.java │ │ ├── adapter │ │ ├── GridAdapter.java │ │ ├── ImageData.java │ │ └── ImagePagerAdapter.java │ │ └── fragment │ │ ├── GridFragment.java │ │ ├── ImageFragment.java │ │ └── ImagePagerFragment.java │ └── res │ ├── drawable-nodpi │ ├── animal_2024172.jpg │ ├── beetle_562035.jpg │ ├── bug_189903.jpg │ ├── butterfly_417971.jpg │ ├── butterfly_dolls_363342.jpg │ ├── dragonfly_122787.jpg │ ├── dragonfly_274059.jpg │ ├── dragonfly_689626.jpg │ ├── grasshopper_279532.jpg │ ├── hover_fly_61682.jpg │ ├── hoverfly_546692.jpg │ ├── insect_278083.jpg │ ├── morpho_43483.jpg │ └── nature_95365.jpg │ ├── layout │ ├── activity_main.xml │ ├── fragment_grid.xml │ ├── fragment_image.xml │ ├── fragment_pager.xml │ └── image_card.xml │ ├── mipmap-hdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ ├── ic_launcher.png │ └── ic_launcher_round.png │ ├── transition │ ├── grid_exit_transition.xml │ └── image_shared_element_transition.xml │ ├── values-land │ └── dimens.xml │ └── values │ ├── colors.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── README.md ├── Tutorial1-1Basics ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── example │ │ └── tutorial1_1basics │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── tutorial1_1basics │ │ │ ├── MainActivity.kt │ │ │ ├── adapter_chapter_selection │ │ │ ├── BaseAdapter.kt │ │ │ ├── ChapterSelectionAdapter.kt │ │ │ └── model │ │ │ │ └── ActivityClassModel.kt │ │ │ ├── chapter1_basics │ │ │ ├── Activity1_1Basics.kt │ │ │ ├── Activity1_2AnimatorInflater.kt │ │ │ ├── Activity1_3TranslationVsPosition.kt │ │ │ └── Activity1_4RotationTranslationPosition.kt │ │ │ ├── chapter2_animate_views │ │ │ ├── Activity2_1PulseView.kt │ │ │ ├── Activity2_2RevealHideCrossFade.kt │ │ │ ├── Activity2_3CircularReveal.kt │ │ │ ├── Activity2_4CardFlipAnimation.kt │ │ │ ├── Activity2_5CurvedMotionAnimation.kt │ │ │ ├── Activity2_6ZoomAnimation.kt │ │ │ ├── Activity2_7GradientAnimations.kt │ │ │ ├── Activity2_8CounterAnimation.kt │ │ │ ├── Activity2_9CounterSurfaceView.kt │ │ │ ├── FragmentGradientAnimationDrawable.kt │ │ │ ├── FragmentGradientArgbEvaluator.kt │ │ │ └── view │ │ │ │ ├── CircleView.kt │ │ │ │ ├── CoroutineSurfaceView.kt │ │ │ │ ├── CounterSurfaceView.kt │ │ │ │ ├── CounterTextView.kt │ │ │ │ └── PulseAnimationView.kt │ │ │ ├── chapter3_physics │ │ │ ├── Activity3_1PhysicsBasics.kt │ │ │ ├── Activity3_2ScaleAndChainedAnimations.kt │ │ │ ├── Activity3_3FlingAnimation.kt │ │ │ ├── Activity3_4BNV_TabLayoutPhysics.kt │ │ │ └── Activity3_5ElasticScale.kt │ │ │ └── util │ │ │ └── DisplayUtils.kt │ └── res │ │ ├── anim │ │ ├── anim_blink.xml │ │ ├── anim_bounce.xml │ │ ├── anim_fade_in.xml │ │ ├── anim_fade_out.xml │ │ ├── anim_move.xml │ │ ├── anim_rotate.xml │ │ ├── anim_sequential.xml │ │ ├── anim_slide_down.xml │ │ ├── anim_slide_up.xml │ │ ├── anim_zoom_in.xml │ │ ├── anim_zoom_out.xml │ │ └── path_interpolator.xml │ │ ├── animator │ │ ├── animator_rotation.xml │ │ ├── animator_sample.xml │ │ ├── animator_scale.xml │ │ ├── animator_sequential.xml │ │ ├── animator_translate_x.xml │ │ └── animator_translate_y.xml │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── anim_list_gradient.xml │ │ ├── gradient_green_yellow.xml │ │ ├── gradient_red_blue.xml │ │ ├── ic_baseline_favorite_24.xml │ │ ├── ic_baseline_sports_baseball_24.xml │ │ ├── ic_baseline_sports_basketball_24.xml │ │ ├── ic_baseline_sports_soccer_24.xml │ │ ├── ic_baseline_sports_volleyball_24.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_star.xml │ │ ├── landscape.jpg │ │ └── mountains.jpg │ │ ├── layout │ │ ├── activity1_1basics.xml │ │ ├── activity1_2animatorinflater.xml │ │ ├── activity1_3translation_vs_position.xml │ │ ├── activity1_4rotate_translate_position.xml │ │ ├── activity2_1pulseview.xml │ │ ├── activity2_2reveal_hide_crossfade.xml │ │ ├── activity2_3circular_reveal.xml │ │ ├── activity2_4card_flip.xml │ │ ├── activity2_5curved_motion.xml │ │ ├── activity2_6zoom_animation.xml │ │ ├── activity2_7gradient_animations.xml │ │ ├── activity2_8counter_animation.xml │ │ ├── activity2_9_counter_surfaceview.xml │ │ ├── activity3_1physics_basics.xml │ │ ├── activity3_2scale_and_chained.xml │ │ ├── activity3_3fling_animation.xml │ │ ├── activity3_4_bnv_tablayout_physics.xml │ │ ├── activity3_5elastic_scale.xml │ │ ├── activity_main.xml │ │ ├── counter_layout.xml │ │ ├── fragment_gradient_animation_drawable.xml │ │ ├── fragment_gradient_argb_evaluator.xml │ │ ├── mock_layout.xml │ │ └── row_layout.xml │ │ ├── menu │ │ └── menu_bottom_navigation.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── test │ └── java │ └── com │ └── example │ └── tutorial1_1basics │ └── ExampleUnitTest.kt ├── Tutorial2-1AnimatedVectorDrawables ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── smarttoolfactory │ │ └── tutorial2_1animatedvectordrawables │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── smarttoolfactory │ │ │ └── tutorial2_1animatedvectordrawables │ │ │ ├── Activity1_1Basics.kt │ │ │ ├── Activity1_2StateChange.kt │ │ │ ├── Activity1_3BottomNavIcons.kt │ │ │ ├── MainActivity.kt │ │ │ ├── adapter │ │ │ ├── BaseAdapter.kt │ │ │ ├── ChapterSelectionAdapter.kt │ │ │ ├── MultipleViewBinderListAdapter.kt │ │ │ ├── itemdecoration │ │ │ │ └── GridSpacingItemDecoration.kt │ │ │ ├── model │ │ │ │ └── ActivityClassModel.kt │ │ │ └── viewholder │ │ │ │ ├── AVDViewBinder.kt │ │ │ │ ├── HeaderViewBinder.kt │ │ │ │ ├── ImageButtonViewBinder.kt │ │ │ │ ├── ItemDiffCallback.kt │ │ │ │ ├── SeekableVDViewBinder.kt │ │ │ │ └── ViewBinders.kt │ │ │ └── model │ │ │ ├── AVDModel.kt │ │ │ └── HeaderModel.kt │ └── res │ │ ├── animator │ │ ├── button_frown.xml │ │ ├── comment_add_to_lines.xml │ │ ├── comment_lines_add_rotate.xml │ │ ├── comment_lines_to_add.xml │ │ ├── disable_text_entry.xml │ │ ├── selected_comment.xml │ │ ├── show_connection_cross.xml │ │ ├── show_connection_line.xml │ │ ├── trimclip_heart_draw_stroke.xml │ │ ├── trimclip_heart_fade_out.xml │ │ ├── trimclip_searchback_hide_arrow_head.xml │ │ ├── trimclip_searchback_show_arrow_head.xml │ │ ├── upload_arrow_fill.xml │ │ ├── upload_complete.xml │ │ └── upvote.xml │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── asl_bnv_account.xml │ │ ├── asl_bnv_dashboard.xml │ │ ├── asl_bnv_home.xml │ │ ├── asl_bnv_notification.xml │ │ ├── asl_checkable_checkbox.xml │ │ ├── asl_checkable_expandcollapse.xml │ │ ├── asl_checkable_radiobutton.xml │ │ ├── asl_heart_break.xml │ │ ├── asl_heart_unfill.xml │ │ ├── asl_pathmorph_arrowoverflow.xml │ │ ├── asl_pathmorph_crosstick.xml │ │ ├── asl_pathmorph_drawer.xml │ │ ├── asl_pathmorph_plusminus.xml │ │ ├── asl_trimclip_airplane.xml │ │ ├── asl_trimclip_flashlight.xml │ │ ├── asl_trimclip_heart.xml │ │ ├── asl_trimclip_searchback.xml │ │ ├── avd_account.xml │ │ ├── avd_account2.xml │ │ ├── avd_add_to_comment.xml │ │ ├── avd_checkable_checkbox_checked_to_unchecked.xml │ │ ├── avd_checkable_checkbox_unchecked_to_checked.xml │ │ ├── avd_checkable_expandcollapse_collapsed_to_expanded.xml │ │ ├── avd_checkable_expandcollapse_expanded_to_collapsed.xml │ │ ├── avd_checkable_radiobutton_checked_to_unchecked.xml │ │ ├── avd_checkable_radiobutton_unchecked_to_checked.xml │ │ ├── avd_clock_alarm.xml │ │ ├── avd_clock_clock.xml │ │ ├── avd_clock_stopwatch.xml │ │ ├── avd_comment_to_add.xml │ │ ├── avd_compass_rotation.xml │ │ ├── avd_dashboard.xml │ │ ├── avd_day_to_night.xml │ │ ├── avd_heart_empty_to_filled.xml │ │ ├── avd_heart_fill_color.xml │ │ ├── avd_heart_filled_to_broken.xml │ │ ├── avd_heart_filled_to_unfilled.xml │ │ ├── avd_hide_password.xml │ │ ├── avd_home.xml │ │ ├── avd_hourglass.xml │ │ ├── avd_likes.xml │ │ ├── avd_night_to_day.xml │ │ ├── avd_no_connection.xml │ │ ├── avd_notification.xml │ │ ├── avd_notification_ring.xml │ │ ├── avd_pathmorph_arrowoverflow_arrow_to_overflow.xml │ │ ├── avd_pathmorph_arrowoverflow_overflow_to_arrow.xml │ │ ├── avd_pathmorph_crosstick_cross_to_tick.xml │ │ ├── avd_pathmorph_crosstick_tick_to_cross.xml │ │ ├── avd_pathmorph_drawer_arrow_to_hamburger.xml │ │ ├── avd_pathmorph_drawer_hamburger_to_arrow.xml │ │ ├── avd_pathmorph_plusminus_minus_to_plus.xml │ │ ├── avd_pathmorph_plusminus_plus_to_minus.xml │ │ ├── avd_settings.xml │ │ ├── avd_share.xml │ │ ├── avd_show_password.xml │ │ ├── avd_trimclip_airplane_disabled_to_enabled.xml │ │ ├── avd_trimclip_airplane_enabled_to_disabled.xml │ │ ├── avd_trimclip_flashlight_disabled_to_enabled.xml │ │ ├── avd_trimclip_flashlight_enabled_to_disabled.xml │ │ ├── avd_trimclip_heart_break.xml │ │ ├── avd_trimclip_heart_fill.xml │ │ ├── avd_trimclip_searchback_back_to_search.xml │ │ ├── avd_trimclip_searchback_search_to_back.xml │ │ ├── avd_views.xml │ │ ├── ic_baseline_explore_24.xml │ │ ├── ic_baseline_notifications_active_24.xml │ │ ├── ic_comment_add.xml │ │ ├── ic_comment_lines.xml │ │ ├── ic_launcher_background.xml │ │ ├── vd_account_active.xml │ │ ├── vd_account_outlined.xml │ │ ├── vd_activity1_1heart.xml │ │ ├── vd_checkable_checkbox_checked.xml │ │ ├── vd_checkable_checkbox_unchecked.xml │ │ ├── vd_checkable_expandcollapse_collapsed.xml │ │ ├── vd_checkable_expandcollapse_expanded.xml │ │ ├── vd_checkable_radiobutton_checked.xml │ │ ├── vd_checkable_radiobutton_unchecked.xml │ │ ├── vd_clock_alarm.xml │ │ ├── vd_clock_clock.xml │ │ ├── vd_clock_stopwatch.xml │ │ ├── vd_dashboard_active.xml │ │ ├── vd_dashboard_outlined.xml │ │ ├── vd_heart_empty.xml │ │ ├── vd_heart_filled.xml │ │ ├── vd_home_active.xml │ │ ├── vd_home_outlined.xml │ │ ├── vd_no_connection.xml │ │ ├── vd_notification_active.xml │ │ ├── vd_notification_outlined.xml │ │ ├── vd_pathmorph_arrowoverflow_arrow.xml │ │ ├── vd_pathmorph_arrowoverflow_overflow.xml │ │ ├── vd_pathmorph_crosstick_cross.xml │ │ ├── vd_pathmorph_crosstick_tick.xml │ │ ├── vd_pathmorph_drawer_arrow.xml │ │ ├── vd_pathmorph_drawer_hamburger.xml │ │ ├── vd_pathmorph_plusminus_minus.xml │ │ ├── vd_pathmorph_plusminus_plus.xml │ │ ├── vd_profile.xml │ │ ├── vd_trimclip_airplane_disabled.xml │ │ ├── vd_trimclip_airplane_enabled.xml │ │ ├── vd_trimclip_flashlight_disabled.xml │ │ ├── vd_trimclip_flashlight_enabled.xml │ │ ├── vd_trimclip_heart_break.xml │ │ ├── vd_trimclip_heart_empty.xml │ │ ├── vd_trimclip_heart_full.xml │ │ ├── vd_trimclip_searchback_back.xml │ │ └── vd_trimclip_searchback_search.xml │ │ ├── interpolator │ │ ├── checkable_checkbox_tochecked_0.xml │ │ ├── checkable_checkbox_tochecked_1.xml │ │ ├── checkable_checkbox_tounchecked_0.xml │ │ ├── checkable_checkbox_tounchecked_1.xml │ │ ├── checkable_radiobutton.xml │ │ ├── clock_clock_0.xml │ │ ├── clock_clock_1.xml │ │ ├── pathmorph_expandcollapse.xml │ │ ├── slow_out_fast_in.xml │ │ ├── trim_end_interpolator.xml │ │ └── trim_start_interpolator.xml │ │ ├── layout │ │ ├── activity1_1basics.xml │ │ ├── activity1_2state_change.xml │ │ ├── activity1_3bnv_icons.xml │ │ ├── activity_main.xml │ │ ├── item_animated_vector_drawable.xml │ │ ├── item_header.xml │ │ ├── item_image_button.xml │ │ ├── item_seekable_vd.xml │ │ └── row_layout.xml │ │ ├── menu │ │ └── menu_bottom_navigation.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── checkable_expandcollapse.xml │ │ ├── checkable_radiobutton.xml │ │ ├── colors.xml │ │ ├── comment_lines_add.xml │ │ ├── integers.xml │ │ ├── no_connection.xml │ │ ├── password_visibility.xml │ │ ├── pathmorph_arrowoverflow.xml │ │ ├── pathmorph_crosstick.xml │ │ ├── pathmorph_drawer.xml │ │ ├── pathmorph_plusminus.xml │ │ ├── paths.xml │ │ ├── share_anim.xml │ │ ├── strings.xml │ │ ├── themes.xml │ │ ├── trimclip_airplane.xml │ │ ├── trimclip_flashlight.xml │ │ ├── trimclip_heart.xml │ │ └── trimclip_searchback.xml │ └── test │ └── java │ └── com │ └── smarttoolfactory │ └── tutorial2_1animatedvectordrawables │ └── ExampleUnitTest.kt ├── Tutorial3-1Transitions ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── smarttoolfactory │ │ └── tutorial3_1transitions │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── smarttoolfactory │ │ │ └── tutorial3_1transitions │ │ │ ├── CustomSwipeRefreshLayout.kt │ │ │ ├── ImageData.kt │ │ │ ├── MainActivity.kt │ │ │ ├── MockDataCreator.kt │ │ │ ├── TransitionAdapter.kt │ │ │ ├── adapter │ │ │ ├── BaseAdapter.kt │ │ │ ├── ChapterSelectionAdapter.kt │ │ │ ├── ItemDiffCallback.kt │ │ │ ├── MultipleViewBinderListAdapter.kt │ │ │ ├── SingleViewBinderListAdapter.kt │ │ │ ├── TravelAdapter.kt │ │ │ ├── animator │ │ │ │ └── PostItemAnimator.kt │ │ │ ├── itemdecoration │ │ │ │ ├── GridMarginDecoration.kt │ │ │ │ └── GridSpacingItemDecoration.kt │ │ │ ├── layoutmanager │ │ │ │ ├── ScaledLinearLayoutManager.kt │ │ │ │ └── SpannedGridLayoutManager.kt │ │ │ ├── model │ │ │ │ ├── ActivityClassModel.kt │ │ │ │ ├── HeaderModel.kt │ │ │ │ ├── ImageModel.kt │ │ │ │ ├── MagazineListModel.kt │ │ │ │ ├── MagazineModel.kt │ │ │ │ ├── Post.kt │ │ │ │ ├── PostCardModel.kt │ │ │ │ └── TravelModel.kt │ │ │ └── viewholder │ │ │ │ ├── HeaderViewBinder.kt │ │ │ │ ├── ImageDestinationViewBinder.kt │ │ │ │ ├── ImageTravelDetailViewBinder.kt │ │ │ │ ├── ImageViewBinder.kt │ │ │ │ ├── MagazineListViewBinder.kt │ │ │ │ ├── MagazineViewBinder.kt │ │ │ │ ├── PostGridViewBinder.kt │ │ │ │ ├── PostViewBinder.kt │ │ │ │ └── ViewBinders.kt │ │ │ ├── chapter1_activity_transitions │ │ │ ├── Activity1_0CustomTransitions.kt │ │ │ ├── Activity1_1Details.kt │ │ │ ├── Activity1_1SharedTransitionBasics.kt │ │ │ ├── Activity1_2Details.kt │ │ │ ├── Activity1_2RecyclerViewTransition.kt │ │ │ ├── Activity1_3Details.kt │ │ │ ├── Activity1_3RecyclerViewToViewPager2Transition.kt │ │ │ ├── Activity1_4Details.kt │ │ │ ├── Activity1_4RVtoVP2Transition.kt │ │ │ ├── Activity1_5Details.kt │ │ │ └── Activity1_5RecyclerViewTransition2.kt │ │ │ ├── chapter2_fragment_transitions │ │ │ ├── Activity2_1FragmentTransitionsBasics.kt │ │ │ ├── Activity2_2FragmentTransitionLifeCycles.kt │ │ │ ├── Activity2_3FragmentTransitions.kt │ │ │ ├── Activity2_4FragmentTransitionsWithNavComponents.kt │ │ │ ├── Activity2_5FragmentTransitionsWithToolbar.kt │ │ │ ├── Activity2_6FragmentExpandCollapseTransitions.kt │ │ │ ├── Fragment2_1Basics.kt │ │ │ ├── Fragment2_1Details.kt │ │ │ ├── Fragment2_2LifeCycleFirst.kt │ │ │ ├── Fragment2_2LifeCycleSecond.kt │ │ │ ├── Fragment2_3ImageDetail.kt │ │ │ ├── Fragment2_3ImageList.kt │ │ │ ├── Fragment2_4MagazineDetail.kt │ │ │ ├── Fragment2_4MagazineList.kt │ │ │ ├── Fragment2_5ToolbarDetail.kt │ │ │ ├── Fragment2_5ToolbarDetailAlt.kt │ │ │ ├── Fragment2_5ToolbarDetailAlt2.kt │ │ │ ├── Fragment2_5ToolbarList.kt │ │ │ ├── Fragment2_6Compose.kt │ │ │ ├── Fragment2_6ExpandCollapseDetails.kt │ │ │ ├── Fragment2_6ExpandCollapseList.kt │ │ │ └── TransitionLifeCycleViewModel.kt │ │ │ ├── constant │ │ │ └── Constants.kt │ │ │ ├── fragment │ │ │ └── ImageFragment.kt │ │ │ └── transition │ │ │ ├── AlphaForcedTransition.kt │ │ │ ├── AlphaTransition.kt │ │ │ ├── AnimUtils.kt │ │ │ ├── BackgroundColorForcedTransition.kt │ │ │ ├── BackgroundColorTransition.kt │ │ │ ├── ChangeColor.java │ │ │ ├── ChangeOutlineRadiusTransition.kt │ │ │ ├── PropagatingTransition.kt │ │ │ ├── RotateX.kt │ │ │ ├── RotationForcedTransition.kt │ │ │ ├── RotationTransition.kt │ │ │ ├── ScaleForcedTransition.kt │ │ │ ├── ScaleTransition.kt │ │ │ ├── TextColorForcedTransition.kt │ │ │ ├── TextColorTransition.kt │ │ │ ├── TransitionXAdapter.kt │ │ │ └── visibility │ │ │ ├── AlphaChange.kt │ │ │ ├── BackgroundChange.kt │ │ │ ├── BaseVisibility.kt │ │ │ ├── CircularReveal.kt │ │ │ ├── ExplodeFadeOut.kt │ │ │ ├── ForcedCircularReveal.kt │ │ │ ├── ForcedExplode.kt │ │ │ ├── ForcedExplodeFadeOut.kt │ │ │ ├── ForcedFade.kt │ │ │ ├── ForcedSlide.kt │ │ │ ├── RotationChange.kt │ │ │ ├── ScaleChange.kt │ │ │ └── TextColorChange.kt │ └── res │ │ ├── animator │ │ ├── fab_hide.xml │ │ └── fab_show.xml │ │ ├── color │ │ └── bottom_nav_color.xml │ │ ├── drawable-nodpi │ │ ├── landscape1.jpg │ │ ├── landscape10.jpg │ │ ├── landscape2.jpg │ │ ├── landscape3.jpg │ │ ├── landscape4.jpg │ │ ├── landscape5.jpg │ │ ├── landscape6.jpg │ │ ├── landscape7.jpg │ │ ├── landscape8.jpg │ │ ├── landscape9.jpg │ │ ├── mag1.jpg │ │ ├── mag2.jpg │ │ ├── mag3.jpg │ │ ├── mag4.jpg │ │ ├── mag5.jpg │ │ ├── mag6.jpg │ │ └── mag7.jpg │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── asl_bnv_account.xml │ │ ├── asl_bnv_dashboard.xml │ │ ├── asl_bnv_home.xml │ │ ├── asl_bnv_notification.xml │ │ ├── asl_edit_reply.xml │ │ ├── asl_heart_break.xml │ │ ├── avatar_1_raster.png │ │ ├── avatar_2_raster.png │ │ ├── avatar_3_raster.png │ │ ├── avatar_4_raster.png │ │ ├── avatar_5_raster.png │ │ ├── avatar_6_raster.png │ │ ├── avd_account.xml │ │ ├── avd_dashboard.xml │ │ ├── avd_edit_to_reply.xml │ │ ├── avd_heart_empty_to_filled.xml │ │ ├── avd_heart_filled_to_broken.xml │ │ ├── avd_home.xml │ │ ├── avd_notification.xml │ │ ├── avd_reply_to_edit.xml │ │ ├── ic_arrow_back.xml │ │ ├── ic_baseline_account_circle_24.xml │ │ ├── ic_baseline_add_24.xml │ │ ├── ic_baseline_expand_less_24.xml │ │ ├── ic_baseline_expand_more_24.xml │ │ ├── ic_baseline_home_24.xml │ │ ├── ic_baseline_more_vert_24.xml │ │ ├── ic_baseline_remove_24.xml │ │ ├── ic_baseline_search_24.xml │ │ ├── ic_bookmark.xml │ │ ├── ic_close.xml │ │ ├── ic_delete.xml │ │ ├── ic_edit.xml │ │ ├── ic_favorite.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_reply_all.xml │ │ ├── ic_share.xml │ │ ├── ic_twotone_add_circle_outline.xml │ │ ├── ic_twotone_delete.xml │ │ ├── ic_twotone_send.xml │ │ ├── ic_twotone_star_on_background.xml │ │ ├── ic_twotone_stars.xml │ │ ├── vd_account_active.xml │ │ ├── vd_account_outlined.xml │ │ ├── vd_dashboard_active.xml │ │ ├── vd_dashboard_outlined.xml │ │ ├── vd_heart_empty.xml │ │ ├── vd_heart_filled.xml │ │ ├── vd_home_active.xml │ │ ├── vd_home_outlined.xml │ │ ├── vd_notification_active.xml │ │ └── vd_notification_outlined.xml │ │ ├── layout │ │ ├── activity1_0custom_transitions.xml │ │ ├── activity1_1basics.xml │ │ ├── activity1_1details.xml │ │ ├── activity1_2details.xml │ │ ├── activity1_2recyclerview_transition.xml │ │ ├── activity1_3details.xml │ │ ├── activity1_3recyclerview_to_viewpager2_transition.xml │ │ ├── activity1_5details.xml │ │ ├── activity1_5recyclerview_transition2.xml │ │ ├── activity2_1fragment_transitions_bacis.xml │ │ ├── activity2_2fragment_transition_lifecycles.xml │ │ ├── activity2_3fragment_transitions.xml │ │ ├── activity2_4nav_shared_transition.xml │ │ ├── activity2_5toolbar_transition_propagation.xml │ │ ├── activity2_6_rv_transitions_expand.xml │ │ ├── activity_main.xml │ │ ├── fragment2_1basics.xml │ │ ├── fragment2_1details.xml │ │ ├── fragment2_2lifecycle_first.xml │ │ ├── fragment2_2lifecycle_second.xml │ │ ├── fragment2_3details.xml │ │ ├── fragment2_3recyclerview.xml │ │ ├── fragment2_4magazine_detail.xml │ │ ├── fragment2_4magazine_list.xml │ │ ├── fragment2_5toolbar_detail.xml │ │ ├── fragment2_5toolbar_detail_alt.xml │ │ ├── fragment2_5toolbar_detail_alt2.xml │ │ ├── fragment2_5toolbar_list.xml │ │ ├── fragment2_6compose.xml │ │ ├── fragment2_6expand_collapse_detail.xml │ │ ├── fragment2_6expand_collapse_list.xml │ │ ├── fragment_image.xml │ │ ├── item_avatar.xml │ │ ├── item_header.xml │ │ ├── item_image.xml │ │ ├── item_image_destination.xml │ │ ├── item_image_detail_grid.xml │ │ ├── item_magazine.xml │ │ ├── item_magazine_list.xml │ │ ├── item_post.xml │ │ ├── item_post_grid.xml │ │ ├── item_travel.xml │ │ └── row_layout.xml │ │ ├── menu │ │ ├── main.xml │ │ ├── menu_add_remove.xml │ │ ├── menu_bottom_navigation.xml │ │ └── play_store.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── navigation │ │ ├── nav_graph2_4.xml │ │ ├── nav_graph2_5.xml │ │ └── nav_graph2_6.xml │ │ ├── transition │ │ ├── activity2_detail_transition.xml │ │ ├── activity3_detail_transition.xml │ │ ├── activity5_detail_transition.xml │ │ ├── arc.xml │ │ ├── grid_exit.xml │ │ ├── grid_exit_transition.xml │ │ ├── grid_reenter.xml │ │ ├── icon_expand_toggle.xml │ │ ├── move.xml │ │ ├── shared_main_detail.xml │ │ └── slide.xml │ │ ├── values-night │ │ └── themes.xml │ │ ├── values-v29 │ │ └── color.xml │ │ └── values │ │ ├── attrs_alpha_transition.xml │ │ ├── attrs_background_color_change.xml │ │ ├── attrs_circular_reveal.xml │ │ ├── attrs_rotation_transition.xml │ │ ├── attrs_scale_transition.xml │ │ ├── attrs_text_color_change.xml │ │ ├── colors.xml │ │ ├── layout.xml │ │ ├── motion.xml │ │ ├── strings.xml │ │ ├── themes.xml │ │ └── transition_names.xml │ └── test │ └── java │ └── com │ └── smarttoolfactory │ └── tutorial3_1transitions │ └── ExampleUnitTest.kt ├── anim_res ├── heart_fill.shapeshifter ├── heart_unfill.shapeshifter ├── heartbreak.shapeshifter └── notification.shapeshifter ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── screenshots ├── avd_chapter1_1.gif ├── avd_chapter1_2.gif ├── avd_chapter1_3.gif ├── chapter2_3circular_reveal.gif ├── chapter2_4flip.gif ├── chapter2_6zoom.gif ├── chapter2_7gradient.gif ├── chapter2_8counter_textview.gif ├── chapter2_9_counter_surfaceview.gif ├── chapter3_1physics_basics.gif ├── chapter3_2scale_and_chain.gif ├── chapter3_3fling_animation.gif ├── chapter3_4bnv_tablayout_animation.gif ├── chapter3_5elastic_scale.gif ├── shape_shifter.png ├── transition_chapter1_2.gif ├── transition_chapter1_4.gif ├── transition_chapter2_5_1.gif ├── transition_chapter2_5_2.gif ├── transition_chapter2_5_3.gif └── transition_chapter2_6_1.gif └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/* 5 | /.idea/caches 6 | /.idea/libraries 7 | /.idea/modules.xml 8 | /.idea/workspace.xml 9 | /.idea/navEditor.xml 10 | /.idea/assetWizardSettings.xml 11 | .DS_Store 12 | /build 13 | /captures 14 | .externalNativeBuild 15 | .cxx 16 | local.properties -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/.idea/.gitignore -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/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 /Users/google.samples/Library/Android/sdk/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 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/animal_2024172.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/animal_2024172.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/beetle_562035.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/beetle_562035.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/bug_189903.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/bug_189903.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/butterfly_417971.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/butterfly_417971.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/butterfly_dolls_363342.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/butterfly_dolls_363342.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/dragonfly_122787.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/dragonfly_122787.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/dragonfly_274059.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/dragonfly_274059.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/dragonfly_689626.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/dragonfly_689626.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/grasshopper_279532.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/grasshopper_279532.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/hover_fly_61682.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/hover_fly_61682.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/hoverfly_546692.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/hoverfly_546692.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/insect_278083.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/insect_278083.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/morpho_43483.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/morpho_43483.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/drawable-nodpi/nature_95365.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/drawable-nodpi/nature_95365.jpg -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/layout/fragment_image.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/layout/fragment_pager.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/External-Tutorial-GridToPager/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/transition/image_shared_element_transition.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/values-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 3 20 | -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | #3F51B5 20 | #303F9F 21 | #FF4081 22 | 23 | -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 2 20 | -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | Grid to Pager 19 | Image 20 | 21 | -------------------------------------------------------------------------------- /External-Tutorial-GridToPager/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /Tutorial1-1Basics/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/androidTest/java/com/example/tutorial1_1basics/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.example.tutorial1_1basics 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("com.example.tutorial1_1basics", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/java/com/example/tutorial1_1basics/adapter_chapter_selection/model/ActivityClassModel.kt: -------------------------------------------------------------------------------- 1 | package com.example.tutorial1_1basics.adapter_chapter_selection.model 2 | 3 | data class ActivityClassModel(val clazz: Class<*>, val description: String = clazz.name) 4 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/java/com/example/tutorial1_1basics/chapter2_animate_views/Activity2_1PulseView.kt: -------------------------------------------------------------------------------- 1 | package com.example.tutorial1_1basics.chapter2_animate_views 2 | 3 | import android.os.Bundle 4 | import androidx.appcompat.app.AppCompatActivity 5 | import com.example.tutorial1_1basics.R 6 | 7 | class Activity2_1PulseView : AppCompatActivity() { 8 | 9 | override fun onCreate(savedInstanceState: Bundle?) { 10 | super.onCreate(savedInstanceState) 11 | setContentView(R.layout.activity2_1pulseview) 12 | title = getString(R.string.activity2_1) 13 | } 14 | } -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/anim/anim_blink.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/anim/anim_bounce.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 12 | 13 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/anim/anim_fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/anim/anim_fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/anim/anim_move.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/anim/anim_rotate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/anim/anim_slide_down.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/anim/anim_slide_up.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/anim/anim_zoom_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 13 | 14 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/anim/anim_zoom_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/anim/path_interpolator.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/animator/animator_rotation.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/animator/animator_sample.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/animator/animator_scale.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 11 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/animator/animator_translate_x.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/animator/animator_translate_y.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/drawable/anim_list_gradient.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/drawable/gradient_green_yellow.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/drawable/gradient_red_blue.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/drawable/ic_baseline_favorite_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/drawable/ic_baseline_sports_baseball_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 13 | 16 | 17 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/drawable/ic_baseline_sports_soccer_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/drawable/ic_star.xml: -------------------------------------------------------------------------------- 1 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/drawable/landscape.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial1-1Basics/src/main/res/drawable/landscape.jpg -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/drawable/mountains.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial1-1Basics/src/main/res/drawable/mountains.jpg -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/layout/activity2_1pulseview.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/layout/activity2_2reveal_hide_crossfade.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | 17 | 18 | 19 | 20 | 25 | 26 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 14 | 15 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/layout/mock_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial1-1Basics/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial1-1Basics/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial1-1Basics/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial1-1Basics/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial1-1Basics/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial1-1Basics/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial1-1Basics/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial1-1Basics/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial1-1Basics/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial1-1Basics/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8dp 4 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /Tutorial1-1Basics/src/test/java/com/example/tutorial1_1basics/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.example.tutorial1_1basics 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/androidTest/java/com/smarttoolfactory/tutorial2_1animatedvectordrawables/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial2_1animatedvectordrawables 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals( 23 | "com.smarttoolfactory.tutorial2_1animatedvectordrawables", 24 | appContext.packageName 25 | ) 26 | } 27 | } -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/java/com/smarttoolfactory/tutorial2_1animatedvectordrawables/Activity1_3BottomNavIcons.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial2_1animatedvectordrawables 2 | 3 | import android.os.Bundle 4 | import androidx.appcompat.app.AppCompatActivity 5 | 6 | class Activity1_3BottomNavIcons : AppCompatActivity() { 7 | 8 | override fun onCreate(savedInstanceState: Bundle?) { 9 | super.onCreate(savedInstanceState) 10 | setContentView(R.layout.activity1_3bnv_icons) 11 | title = getString(R.string.activity1_3) 12 | } 13 | } -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/java/com/smarttoolfactory/tutorial2_1animatedvectordrawables/adapter/model/ActivityClassModel.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial2_1animatedvectordrawables.adapter.model 2 | 3 | data class ActivityClassModel(val clazz: Class<*>, val description: String = clazz.name) 4 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/java/com/smarttoolfactory/tutorial2_1animatedvectordrawables/adapter/viewholder/ItemDiffCallback.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial2_1animatedvectordrawables.adapter.viewholder 2 | 3 | import androidx.recyclerview.widget.DiffUtil 4 | 5 | class ItemDiffCallback( 6 | private val viewBinders: Map 7 | ) : DiffUtil.ItemCallback() { 8 | 9 | override fun areItemsTheSame(oldItem: Any, newItem: Any): Boolean { 10 | if (oldItem::class != newItem::class) { 11 | return false 12 | } 13 | return viewBinders[oldItem::class.java]?.areItemsTheSame(oldItem, newItem) ?: false 14 | } 15 | 16 | override fun areContentsTheSame(oldItem: Any, newItem: Any): Boolean { 17 | // We know the items are the same class because [areItemsTheSame] returned true 18 | return viewBinders[oldItem::class.java]?.areContentsTheSame(oldItem, newItem) ?: false 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/java/com/smarttoolfactory/tutorial2_1animatedvectordrawables/model/AVDModel.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial2_1animatedvectordrawables.model 2 | 3 | import androidx.annotation.DrawableRes 4 | 5 | data class AVDModel(@DrawableRes val drawableRes: Int) 6 | data class SeekableVDModel(@DrawableRes val drawableRes: Int) 7 | data class ImageButtonModel(@DrawableRes val drawableRes: Int) -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/java/com/smarttoolfactory/tutorial2_1animatedvectordrawables/model/HeaderModel.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial2_1animatedvectordrawables.model 2 | 3 | data class HeaderModel(val header: String) -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/animator/comment_lines_add_rotate.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 25 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/animator/trimclip_heart_draw_stroke.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 15 | 16 | 17 | 24 | 25 | 32 | 33 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/animator/trimclip_heart_fade_out.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 11 | 12 | 19 | 20 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/animator/trimclip_searchback_hide_arrow_head.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/animator/trimclip_searchback_show_arrow_head.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 18 | 19 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/animator/upload_arrow_fill.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/animator/upvote.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 25 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_bnv_account.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 13 | 14 | 18 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_bnv_dashboard.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_bnv_home.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_bnv_notification.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 13 | 14 | 18 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_checkable_checkbox.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_checkable_expandcollapse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_checkable_radiobutton.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_heart_break.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_heart_unfill.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_pathmorph_arrowoverflow.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_pathmorph_crosstick.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_pathmorph_drawer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_pathmorph_plusminus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_trimclip_airplane.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_trimclip_flashlight.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_trimclip_heart.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/asl_trimclip_searchback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/avd_pathmorph_drawer_hamburger_to_arrow.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 14 | 15 | 16 | 17 | 18 | 19 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/avd_trimclip_heart_fill.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/ic_baseline_explore_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/ic_baseline_notifications_active_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_account_active.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_account_outlined.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_activity1_1heart.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_checkable_expandcollapse_collapsed.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | 16 | 17 | 20 | 21 | 22 | 25 | 26 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_checkable_expandcollapse_expanded.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | 16 | 17 | 20 | 21 | 22 | 25 | 26 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_checkable_radiobutton_checked.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | 17 | 18 | 19 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_checkable_radiobutton_unchecked.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | 17 | 18 | 22 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_dashboard_active.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_dashboard_outlined.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_heart_empty.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_heart_filled.xml: -------------------------------------------------------------------------------- 1 | 7 | 13 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_home_active.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_home_outlined.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_notification_active.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_notification_outlined.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_pathmorph_crosstick_cross.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | 14 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_pathmorph_crosstick_tick.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | 14 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_pathmorph_drawer_arrow.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 20 | 21 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_pathmorph_drawer_hamburger.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | 14 | 18 | 19 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_pathmorph_plusminus_minus.xml: -------------------------------------------------------------------------------- 1 | 8 | 12 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_pathmorph_plusminus_plus.xml: -------------------------------------------------------------------------------- 1 | 8 | 12 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_profile.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 15 | 16 | 21 | 25 | 26 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_trimclip_airplane_disabled.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | 15 | 18 | 19 | 24 | 25 | 28 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_trimclip_airplane_enabled.xml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 13 | 14 | 17 | 18 | 24 | 25 | 28 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_trimclip_flashlight_disabled.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | 15 | 18 | 19 | 24 | 25 | 28 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_trimclip_flashlight_enabled.xml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 13 | 14 | 17 | 18 | 24 | 25 | 28 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_trimclip_heart_empty.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | 14 | 18 | 19 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/drawable/vd_trimclip_heart_full.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | 14 | 18 | 19 | 20 | 23 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/interpolator/checkable_checkbox_tochecked_0.xml: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/interpolator/checkable_checkbox_tochecked_1.xml: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/interpolator/checkable_checkbox_tounchecked_0.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/interpolator/checkable_checkbox_tounchecked_1.xml: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/interpolator/checkable_radiobutton.xml: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/interpolator/clock_clock_0.xml: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/interpolator/clock_clock_1.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/interpolator/pathmorph_expandcollapse.xml: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/interpolator/slow_out_fast_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 24 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/interpolator/trim_end_interpolator.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 21 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/interpolator/trim_start_interpolator.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 21 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/layout/activity1_3bnv_icons.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 16 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 14 | 15 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/menu/menu_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 14 | 15 | 20 | 25 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial2-1AnimatedVectorDrawables/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/values/checkable_expandcollapse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | M 1,-4 L 1,4 L -1,4 L -1,-4 Z 4 | 5 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/values/checkable_radiobutton.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | M 0,0 m -9,0 a 9,9 0 1,0 18,0 a 9,9 0 1,0 -18,0 4 | M 0,0 m -5,0 a 5,5 0 1,0 10,0 a 5,5 0 1,0 -10,0 5 | 6 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | 11 | #ff333333 12 | #ff757575 13 | #fafafa 14 | @color/background_light 15 | #ffffff 16 | #e0e0e0 17 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/values/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 360 20 | 120 21 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/values/pathmorph_arrowoverflow.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | M -5.5,-1 l 11,0 c 0,0 0,0 0,0 l 0,2 c 0,0 0,0 0,0 l -11,0 c 0,0 0,0 0,0 l 0,-2 c 0,0 0,0 0,0 Z 4 | M -7,-1 l 14,0 c 0,0 0,0 0,0 l 0,2 c 0,0 0,0 0,0 l -14,0 c 0,0 0,0 0,0 l 0,-2 c 0,0 0,0 0,0 Z 5 | M 0,-2 l 0,0 c 1.1045694996,0 2,0.8954305004 2,2 l 0,0 c 0,1.1045694996 -0.8954305004,2 -2,2 l 0,0 c -1.1045694996,0 -2,-0.8954305004 -2,-2 l 0,0 c 0,-1.1045694996 0.8954305004,-2 2,-2 Z 6 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/values/pathmorph_crosstick.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | M4.8,13.4 L9,17.6 M10.4,16.2 L19.6,7 4 | M6.4,6.4 L17.6,17.6 M6.4,17.6 L17.6,6.4 5 | 2 6 | 300 7 | 8 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/values/pathmorph_drawer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | M 3,6 L 3,8 L 21,8 L 21,6 L 3,6 z M 3,11 L 3,13 L 21,13 L 21, 12 L 21,11 L 3,11 z M 3,18 L 3,16 L 21,16 L 21,18 L 3,18 z 4 | M 12, 4 L 10.59,5.41 L 16.17,11 L 18.99,11 L 12,4 z M 4, 11 L 4, 13 L 18.99, 13 L 20, 12 L 18.99, 11 L 4, 11 z M 12,20 L 10.59, 18.59 L 16.17, 13 L 18.99, 13 L 12, 20z 5 | 6 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/values/pathmorph_plusminus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | M 5,11 L 11,11 L 11,5 L 13,5 L 13,11 L 19,11 L 19,13 L 13,13 L 13,19 L 11,19 L 11,13 L 5,13 Z 4 | M 5,11 L 11,11 L 11,11 L 13,11 L 13,11 L 19,11 L 19,13 L 13,13 L 13,13 L 11,13 L 11,13 L 5,13 Z 5 | 6 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/values/paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | M20,36h8v-4h-8V36z M6,12v4h36v-4H6z M12,26h24v-4H12V26z 20 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Tutorial2-1AnimatedVectorDrawables 3 | Ch1-1 AnimatedVectorDrawables 4 | Ch1-2 State Change 5 | Ch1-3 BottomNavigationView Icons 6 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /Tutorial2-1AnimatedVectorDrawables/src/test/java/com/smarttoolfactory/tutorial2_1animatedvectordrawables/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial2_1animatedvectordrawables 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } -------------------------------------------------------------------------------- /Tutorial3-1Transitions/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /Tutorial3-1Transitions/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/androidTest/java/com/smarttoolfactory/tutorial3_1transitions/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("com.smarttoolfactory.tutorial3_1transitions", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/TransitionAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions 2 | 3 | import android.transition.Transition 4 | 5 | open class TransitionAdapter : Transition.TransitionListener { 6 | 7 | override fun onTransitionStart(transition: Transition?) { 8 | 9 | } 10 | 11 | override fun onTransitionEnd(transition: Transition?) { 12 | 13 | } 14 | 15 | override fun onTransitionCancel(transition: Transition?) { 16 | 17 | } 18 | 19 | override fun onTransitionPause(transition: Transition?) { 20 | } 21 | 22 | override fun onTransitionResume(transition: Transition?) { 23 | } 24 | 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/adapter/animator/PostItemAnimator.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.adapter.animator 2 | 3 | import androidx.recyclerview.widget.DefaultItemAnimator 4 | import androidx.recyclerview.widget.RecyclerView 5 | 6 | // TODO Add RecyclerView item addition and removal animations 7 | class PostItemAnimator : DefaultItemAnimator() { 8 | 9 | override fun animateAdd(holder: RecyclerView.ViewHolder?): Boolean { 10 | return super.animateAdd(holder) 11 | } 12 | 13 | override fun animateRemove(holder: RecyclerView.ViewHolder?): Boolean { 14 | return super.animateRemove(holder) 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/adapter/itemdecoration/GridMarginDecoration.kt: -------------------------------------------------------------------------------- 1 | 2 | package com.smarttoolfactory.tutorial3_1transitions.adapter.itemdecoration 3 | 4 | import android.graphics.Rect 5 | import android.view.View 6 | import androidx.recyclerview.widget.RecyclerView 7 | 8 | class GridMarginDecoration(private val space: Int) : RecyclerView.ItemDecoration() { 9 | override fun getItemOffsets( 10 | outRect: Rect, view: View, 11 | parent: RecyclerView, state: RecyclerView.State 12 | ) { 13 | outRect.left = space 14 | outRect.top = space 15 | outRect.right = space 16 | outRect.bottom = space 17 | } 18 | } -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/adapter/itemdecoration/GridSpacingItemDecoration.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.adapter.itemdecoration 2 | 3 | import android.graphics.Rect 4 | import android.view.View 5 | import androidx.recyclerview.widget.RecyclerView 6 | 7 | class GridSpacingItemDecoration( 8 | private val spanCount: Int, 9 | private val spacing: Int, 10 | ) : RecyclerView.ItemDecoration() { 11 | 12 | override fun getItemOffsets( 13 | outRect: Rect, 14 | view: View, 15 | parent: RecyclerView, 16 | state: RecyclerView.State 17 | ) { 18 | val position = parent.getChildAdapterPosition(view) 19 | 20 | val column = (position) % spanCount 21 | 22 | if (column == 0) { 23 | outRect.left = spacing 24 | } else { 25 | outRect.left = 0 26 | } 27 | outRect.right = spacing 28 | outRect.bottom = 0 29 | outRect.top = spacing 30 | 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/adapter/model/ActivityClassModel.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.adapter.model 2 | 3 | data class ActivityClassModel(val clazz: Class<*>, val description: String = clazz.name) 4 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/adapter/model/HeaderModel.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.adapter.model 2 | 3 | data class HeaderModel(val header: String) -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/adapter/model/ImageModel.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.adapter.model 2 | 3 | import androidx.annotation.DrawableRes 4 | 5 | data class ImageModel(@DrawableRes val drawableRes: Int) -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/adapter/model/MagazineListModel.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.adapter.model 2 | 3 | import android.os.Parcelable 4 | import kotlinx.android.parcel.Parcelize 5 | 6 | @Parcelize 7 | data class MagazineListModel(val magazineList: List) : Parcelable -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/adapter/model/MagazineModel.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.adapter.model 2 | 3 | import android.os.Parcelable 4 | import androidx.annotation.DrawableRes 5 | import kotlinx.android.parcel.Parcelize 6 | 7 | @Parcelize 8 | data class MagazineModel( 9 | @DrawableRes val drawableRes: Int, 10 | val title: String, 11 | val body: String, 12 | val transitionId:Int, 13 | val transitionName: String = "" 14 | ) : Parcelable { 15 | 16 | } -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/adapter/model/Post.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.adapter.model 2 | 3 | import android.os.Parcelable 4 | import kotlinx.android.parcel.Parcelize 5 | 6 | @Parcelize 7 | data class Post( 8 | val id: Int, 9 | val userId: Int, 10 | val title: String, 11 | val body: String 12 | ) : Parcelable -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/adapter/model/PostCardModel.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.adapter.model 2 | 3 | import android.os.Parcelable 4 | import androidx.annotation.DrawableRes 5 | import kotlinx.android.parcel.Parcelize 6 | 7 | @Parcelize 8 | data class PostCardModel(val post: Post, @DrawableRes val drawableRes: Int) : Parcelable -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/adapter/model/TravelModel.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.adapter.model 2 | 3 | import android.os.Parcelable 4 | import androidx.annotation.DrawableRes 5 | import kotlinx.android.parcel.Parcelize 6 | 7 | @Parcelize 8 | data class TravelModel( 9 | val id: Int, 10 | @DrawableRes 11 | val drawableRes: Int, 12 | val title: String, 13 | val date: String, 14 | val images: List?, 15 | val body: String, 16 | ) : Parcelable -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/chapter2_fragment_transitions/Activity2_1FragmentTransitionsBasics.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.chapter2_fragment_transitions 2 | 3 | import android.os.Bundle 4 | import androidx.appcompat.app.AppCompatActivity 5 | import com.smarttoolfactory.tutorial3_1transitions.R 6 | 7 | class Activity2_1FragmentTransitionsBasics : AppCompatActivity() { 8 | 9 | override fun onCreate(savedInstanceState: Bundle?) { 10 | 11 | super.onCreate(savedInstanceState) 12 | setContentView(R.layout.activity2_1fragment_transitions_bacis) 13 | title = getString(R.string.activity2_1) 14 | 15 | val fragment = Fragment2_1Basics() 16 | 17 | supportFragmentManager.beginTransaction() 18 | .add(R.id.fragmentContainerView, fragment) 19 | .commit() 20 | } 21 | } -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/chapter2_fragment_transitions/Activity2_3FragmentTransitions.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.chapter2_fragment_transitions 2 | 3 | import android.os.Bundle 4 | import androidx.appcompat.app.AppCompatActivity 5 | import com.smarttoolfactory.tutorial3_1transitions.R 6 | 7 | class Activity2_3FragmentTransitions : AppCompatActivity() { 8 | 9 | override fun onCreate(savedInstanceState: Bundle?) { 10 | 11 | super.onCreate(savedInstanceState) 12 | setContentView(R.layout.activity2_3fragment_transitions) 13 | title = getString(R.string.activity2_1) 14 | 15 | val fragment = Fragment2_3ImageList() 16 | 17 | supportFragmentManager.beginTransaction() 18 | .add(R.id.fragmentContainerView, fragment) 19 | .commit() 20 | } 21 | } -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/chapter2_fragment_transitions/Activity2_4FragmentTransitionsWithNavComponents.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.chapter2_fragment_transitions 2 | 3 | import android.os.Bundle 4 | import androidx.appcompat.app.AppCompatActivity 5 | import com.smarttoolfactory.tutorial3_1transitions.R 6 | 7 | 8 | class Activity2_4FragmentTransitionsWithNavComponents : AppCompatActivity() { 9 | 10 | override fun onCreate(savedInstanceState: Bundle?) { 11 | 12 | super.onCreate(savedInstanceState) 13 | setContentView(R.layout.activity2_4nav_shared_transition) 14 | title = getString(R.string.activity2_4) 15 | 16 | } 17 | } -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/chapter2_fragment_transitions/Activity2_5FragmentTransitionsWithToolbar.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.chapter2_fragment_transitions 2 | 3 | import android.os.Bundle 4 | import androidx.appcompat.app.AppCompatActivity 5 | import com.smarttoolfactory.tutorial3_1transitions.R 6 | 7 | 8 | class Activity2_5FragmentTransitionsWithToolbar : AppCompatActivity() { 9 | 10 | override fun onCreate(savedInstanceState: Bundle?) { 11 | 12 | super.onCreate(savedInstanceState) 13 | setContentView(R.layout.activity2_5toolbar_transition_propagation) 14 | title = getString(R.string.activity2_5) 15 | 16 | } 17 | } -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/chapter2_fragment_transitions/TransitionLifeCycleViewModel.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.chapter2_fragment_transitions 2 | 3 | import androidx.lifecycle.LiveData 4 | import androidx.lifecycle.MutableLiveData 5 | import androidx.lifecycle.ViewModel 6 | 7 | class TransitionLifeCycleViewModel : ViewModel() { 8 | 9 | private val _lifecycleText = MutableLiveData() 10 | val lifeCycleText: LiveData 11 | get() = _lifecycleText 12 | 13 | fun clearText() { 14 | _lifecycleText.value = "" 15 | } 16 | 17 | fun appendText(text: String) { 18 | _lifecycleText.value += text 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/constant/Constants.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.constant 2 | 3 | const val KEY_AVATAR = "key-avatar" 4 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/java/com/smarttoolfactory/tutorial3_1transitions/transition/TransitionXAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions.transition 2 | 3 | import androidx.transition.Transition 4 | 5 | abstract class TransitionXAdapter : Transition.TransitionListener { 6 | 7 | var animationDuration = 0L 8 | 9 | override fun onTransitionStart(transition: Transition) { 10 | animationDuration = System.currentTimeMillis() 11 | } 12 | 13 | override fun onTransitionEnd(transition: Transition) { 14 | animationDuration = System.currentTimeMillis() - animationDuration 15 | } 16 | 17 | override fun onTransitionCancel(transition: Transition) = Unit 18 | 19 | override fun onTransitionPause(transition: Transition) = Unit 20 | 21 | override fun onTransitionResume(transition: Transition) = Unit 22 | } -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/color/bottom_nav_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape1.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape10.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape2.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape3.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape4.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape5.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape6.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape7.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape8.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/landscape9.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag1.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag2.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag3.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag4.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag5.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag6.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable-nodpi/mag7.jpg -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/asl_bnv_account.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 13 | 14 | 18 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/asl_bnv_dashboard.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/asl_bnv_home.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/asl_bnv_notification.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 13 | 14 | 18 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/asl_heart_break.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 12 | 13 | 17 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/avatar_1_raster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable/avatar_1_raster.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/avatar_2_raster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable/avatar_2_raster.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/avatar_3_raster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable/avatar_3_raster.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/avatar_4_raster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable/avatar_4_raster.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/avatar_5_raster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable/avatar_5_raster.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/avatar_6_raster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/drawable/avatar_6_raster.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_arrow_back.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_baseline_account_circle_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_baseline_add_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_baseline_expand_less_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_baseline_expand_more_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_baseline_home_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_baseline_more_vert_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_baseline_remove_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_baseline_search_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_bookmark.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_delete.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_favorite.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_reply_all.xml: -------------------------------------------------------------------------------- 1 | 14 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/ic_share.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/vd_account_active.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/vd_account_outlined.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/vd_dashboard_active.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/vd_dashboard_outlined.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/vd_heart_empty.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/vd_heart_filled.xml: -------------------------------------------------------------------------------- 1 | 7 | 13 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/vd_home_active.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/vd_home_outlined.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/vd_notification_active.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/drawable/vd_notification_outlined.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/activity1_2recyclerview_transition.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | 15 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/activity1_3details.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | 16 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/activity1_3recyclerview_to_viewpager2_transition.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/activity1_5recyclerview_transition2.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 19 | 20 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/activity2_1fragment_transitions_bacis.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 15 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/activity2_2fragment_transition_lifecycles.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/activity2_3fragment_transitions.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 15 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/activity2_4nav_shared_transition.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 16 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/activity2_5toolbar_transition_propagation.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 16 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 16 | 17 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/fragment2_6expand_collapse_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/item_image.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/item_image_destination.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 13 | 14 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/layout/item_image_detail_grid.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 13 | 14 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 13 | 14 | 18 | 19 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/menu/menu_add_remove.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | 11 | 17 | 18 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/menu/menu_bottom_navigation.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 14 | 15 | 20 | 25 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/menu/play_store.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/Tutorial3-1Transitions/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/transition/activity2_detail_transition.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/transition/activity3_detail_transition.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/transition/activity5_detail_transition.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/transition/arc.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/transition/grid_exit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/transition/grid_reenter.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/transition/icon_expand_toggle.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/transition/move.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/transition/shared_main_detail.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/transition/slide.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/values-v29/color.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | @android:color/transparent 16 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/values/attrs_alpha_transition.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/values/attrs_background_color_change.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/values/attrs_circular_reveal.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/values/attrs_rotation_transition.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/values/attrs_scale_transition.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/values/attrs_text_color_change.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/values/motion.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 19 | 300 20 | 225 21 | 175 22 | 23 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/main/res/values/transition_names.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | transition_iv_avatar 4 | transition_image_view 5 | transition_card_view 6 | transition_tv_title 7 | transition_tv_body 8 | transition_tv_date 9 | -------------------------------------------------------------------------------- /Tutorial3-1Transitions/src/test/java/com/smarttoolfactory/tutorial3_1transitions/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.smarttoolfactory.tutorial3_1transitions 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | buildscript { 3 | ext.kotlin_version = "1.4.10" 4 | ext.navigation_version = '2.3.0' 5 | repositories { 6 | google() 7 | jcenter() 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:4.2.0-alpha15' 11 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 12 | classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigation_version" 13 | 14 | // NOTE: Do not place your application dependencies here; they belong 15 | // in the individual module build.gradle files 16 | } 17 | } 18 | 19 | allprojects { 20 | repositories { 21 | google() 22 | jcenter() 23 | } 24 | } 25 | 26 | task clean(type: Delete) { 27 | delete rootProject.buildDir 28 | } -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Oct 28 11:31:22 TRT 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /screenshots/avd_chapter1_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/avd_chapter1_1.gif -------------------------------------------------------------------------------- /screenshots/avd_chapter1_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/avd_chapter1_2.gif -------------------------------------------------------------------------------- /screenshots/avd_chapter1_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/avd_chapter1_3.gif -------------------------------------------------------------------------------- /screenshots/chapter2_3circular_reveal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/chapter2_3circular_reveal.gif -------------------------------------------------------------------------------- /screenshots/chapter2_4flip.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/chapter2_4flip.gif -------------------------------------------------------------------------------- /screenshots/chapter2_6zoom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/chapter2_6zoom.gif -------------------------------------------------------------------------------- /screenshots/chapter2_7gradient.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/chapter2_7gradient.gif -------------------------------------------------------------------------------- /screenshots/chapter2_8counter_textview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/chapter2_8counter_textview.gif -------------------------------------------------------------------------------- /screenshots/chapter2_9_counter_surfaceview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/chapter2_9_counter_surfaceview.gif -------------------------------------------------------------------------------- /screenshots/chapter3_1physics_basics.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/chapter3_1physics_basics.gif -------------------------------------------------------------------------------- /screenshots/chapter3_2scale_and_chain.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/chapter3_2scale_and_chain.gif -------------------------------------------------------------------------------- /screenshots/chapter3_3fling_animation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/chapter3_3fling_animation.gif -------------------------------------------------------------------------------- /screenshots/chapter3_4bnv_tablayout_animation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/chapter3_4bnv_tablayout_animation.gif -------------------------------------------------------------------------------- /screenshots/chapter3_5elastic_scale.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/chapter3_5elastic_scale.gif -------------------------------------------------------------------------------- /screenshots/shape_shifter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/shape_shifter.png -------------------------------------------------------------------------------- /screenshots/transition_chapter1_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/transition_chapter1_2.gif -------------------------------------------------------------------------------- /screenshots/transition_chapter1_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/transition_chapter1_4.gif -------------------------------------------------------------------------------- /screenshots/transition_chapter2_5_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/transition_chapter2_5_1.gif -------------------------------------------------------------------------------- /screenshots/transition_chapter2_5_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/transition_chapter2_5_2.gif -------------------------------------------------------------------------------- /screenshots/transition_chapter2_5_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/transition_chapter2_5_3.gif -------------------------------------------------------------------------------- /screenshots/transition_chapter2_6_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SmartToolFactory/Animation-Tutorials/d63433b6cd871b7240ac7830063393f25f704e75/screenshots/transition_chapter2_6_1.gif -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = "Animation Tutorials" 2 | include ':Tutorial1-1Basics' 3 | include ':Tutorial2-1AnimatedVectorDrawables' 4 | include ':Tutorial3-1Transitions' 5 | include ':External-Tutorial-GridToPager' 6 | --------------------------------------------------------------------------------