All Projects → Mindinventory → Walk-Through-Screen

Mindinventory / Walk-Through-Screen

Licence: MIT license
This library provides easy ways to add onboarding or pager screens with different animation and indicators.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Walk-Through-Screen

Cmpagetitleview
✍️一分钟集成类似抖音,新浪微博,腾讯视频,网易新闻,今日头条等常见的标题栏样式,api灵活易扩展,支持Cocoapods和Masonry布局,支持ChildController的完整生命周期
Stars: ✭ 270 (+770.97%)
Mutual labels:  viewpager, pager, indicator
ArcPageIndicator
Android Page Indicator for ViewPager with original animations. It uses an ellipse to dispose indication spots, and can draw a hand, like in old elevators.
Stars: ✭ 73 (+135.48%)
Mutual labels:  viewpager, animations, indicator
Bubblepagerindicator
A view pager indicator view to deal with a large amount of pages.
Stars: ✭ 127 (+309.68%)
Mutual labels:  viewpager, indicator
Shviewpager
A simple view pager for iOS. Compatible with iOS 8.0 or later.
Stars: ✭ 127 (+309.68%)
Mutual labels:  viewpager, pager
Bannerviewpager
🚀 An awesome banner view for Android,Based on ViewPager2. 这可能是全网最好用的ViewPager轮播图。简单、高效,一行代码实现循环轮播,一屏三页任意变,指示器样式任你挑。
Stars: ✭ 2,603 (+8296.77%)
Mutual labels:  viewpager, indicator
Concentriconboarding
Android Concentric Onboarding library
Stars: ✭ 42 (+35.48%)
Mutual labels:  viewpager, pager
Magicindicator
A powerful, customizable and extensible ViewPager indicator framework. As the best alternative of ViewPagerIndicator, TabLayout and PagerSlidingTabStrip —— 强大、可定制、易扩展的 ViewPager 指示器框架。是ViewPagerIndicator、TabLayout、PagerSlidingTabStrip的最佳替代品。支持角标,更支持在非ViewPager场景下使用(使用hide()、show()切换Fragment或使用setVisibility切换FrameLayout里的View等),http://www.jianshu…
Stars: ✭ 8,969 (+28832.26%)
Mutual labels:  viewpager, indicator
Cardslider
Card Slider is an android component allows you to implement carousel effect with infinite indicators and more features
Stars: ✭ 160 (+416.13%)
Mutual labels:  viewpager, indicator
Scrollingpagerindicator
Pager indicator inspired by Instagram. Lightweight and easy to set up.
Stars: ✭ 419 (+1251.61%)
Mutual labels:  viewpager, indicator
SimpleSlider
A simple slider allows you to easily use.
Stars: ✭ 78 (+151.61%)
Mutual labels:  viewpager, indicator
Pageindicator
An Instagram like page indicator compatible with RecyclerView and ViewPager.
Stars: ✭ 236 (+661.29%)
Mutual labels:  viewpager, indicator
Material-BottomBarLayout
🎉A material navigation bar library which has pretty animations and different ways of arrangement.
Stars: ✭ 56 (+80.65%)
Mutual labels:  viewpager, animations
Animatedbottombar
A customizable and easy to use BottomBar navigation view with sleek animations, with support for ViewPager, ViewPager2, NavController, and badges.
Stars: ✭ 797 (+2470.97%)
Mutual labels:  viewpager, animations
Liquidswipe
Android LiquidSwipe Library
Stars: ✭ 721 (+2225.81%)
Mutual labels:  viewpager, pager
Rvpindicator
ViewPager指示器 实现联动,自身滚动,支持类型 : 下滑线,三角形,全背景,图片
Stars: ✭ 99 (+219.35%)
Mutual labels:  viewpager, indicator
Inkpageindicator
InkPageIndicator created by @nickbutcher for Plaid https://github.com/nickbutcher/plaid and backported by me for API 14+ (4.0+)
Stars: ✭ 589 (+1800%)
Mutual labels:  viewpager, indicator
Banner
🔥🔥🔥Banner 2.0 来了!Android广告图片轮播控件,内部基于ViewPager2实现,Indicator和UI都可以自定义。
Stars: ✭ 11,682 (+37583.87%)
Mutual labels:  viewpager, indicator
IndicatorView
IndicatorView Library For Android
Stars: ✭ 41 (+32.26%)
Mutual labels:  viewpager, indicator
Viewpagerindicator
一个简单好用的ViewPagerIndicator,提供了六种类型,为viewpager添加酷炫效果,并且支持轮播图( A simple, cool, customizable ViewPagerIndicator.show cool indicator for viewpager , it also good for viewpager as carousel )
Stars: ✭ 366 (+1080.65%)
Mutual labels:  viewpager, indicator
Banner
🔥🔥ViewPager,ViewPager2无限轮播功能。自定义Indicator,支持一屏三页,支持仿魅族banner效果。极其简单的使用方式
Stars: ✭ 393 (+1167.74%)
Mutual labels:  viewpager, indicator

WalkThroughAndroid

Make amazing OnBoarding Screens easily for your app with different colorful animations, fonts, styles, and many more. Customize your onboarding as per your requirements.

Indicator Animation/Indicator Style

DEFAULT CIRCLE RECTANGLE SQUARE ROUNDED_RECTANGLE VECTOR BITMAP
NONE image image image image image image image
SCALE image image image image image image image
SMOOTH_SCALE image image image image image image image
LEFT_IN image image image image image image image
RIGHT_IN image image image image image image image
FLIP image image image image image image image

Content Animation Style

Animation Type Preview
NONE image
FADE image
SLIDER image
SCALE image
TOP_IN image
BOTTOM_IN image
BOUNCE image

Key features

  • Simple implementation
  • Set Title and Description
  • Set Content Animation
  • Set Pager Indicator Animation
  • Customize Title and Description
  • Set OnBoarding image with drawable and image url
  • Support for both Activity and Fragment

Usage

Dependencies

  • Step 1. Add the JitPack repository to your build file

    Add it in your root build.gradle at the end of repositories:

        allprojects {
    	    repositories {
    		    ...
    		    maven { url 'https://jitpack.io' }
    	    }
        }
  • Step 2. Add the dependency

    Add it in your app module build.gradle:

        dependencies {
            ...
             implementation 'com.github.Mindinventory:Walk-Through-Screen:0.1.4'
        }

Implementation

  • Step 1. Prepare List for your OnBoarding screen

            val walkThroughScreens = ArrayList<WalkThroughScreenModel>().apply {
                       add(
                           WalkThroughScreenModel(
                               image = R.drawable.tasty_dish,
                               title = R.string.choose_a_tasty_dish,
                               description = R.string.order_anything
                           )
                       )
                       add(
                           WalkThroughScreenModel(
                               image = R.drawable.order,
                               title = R.string.order,
                               description = R.string.place_order
                           )
                       )
                       add(
                           WalkThroughScreenModel(
                               image = R.drawable.delivery,
                               title = R.string.pick_up_or_delivery,
                               description = R.string.we_make_food
                           )
                       )
                   }
  • Step 2. Customize title, description, indicator, animation

        val walkThroughIntent = walkThrough {
                   with { this@MainActivity } // Pass Content
                   walkThroughScreens { walkThroughScreens } // Pass Screens List
                   titleColor { R.color.black } // Title Color
                   descriptionColor { R.color.black } // Description Color
                   titleFontFamily { R.font.robotobold } // Title FontFamily
                   descriptionFontFamily { R.font.robotolight } // Description FontFamily
                   titleFontSize { 8.0F } // Title Font Size
                   descriptionFontSize { 4.0F } // Description Font Size
                   skipButtonFontFamily { R.font.robotolight } // Skip Button FontFamily
                   skipButtonColor { R.color.yellow } // Skip Button Color
                   backgroundColor { R.color.white } // Background Color for screen
                   activeIndicatorColor { R.color.yellow } // Active Indicator Color
                   inactiveIndicatorColor { R.color.light_yellow } // Inactive Indicator Color
                   indicatorStyle { IndicatorStyle.ROUNDED_RECTANGLE } // Indicator Style CIRCLE, RECTANGLE, SQUARE, ROUNDED_RECTANGLE, VECTOR, BITMAP
                   activeVectorDrawableRes { Your Vector } // Active Indicator Vector Drawable Res , Set If Indicator Style = VECTOR
                   inactiveVectorDrawableRes { Your Vector } // Inactive Indicator Vector Drawable Res , Set If Indicator Style = VECTOR
                   activeBitmapDrawableRes { R.drawable.tasty_dish } // Active Indicator Bitmap Drawable Res , Set If Indicator Style = BITMAP
                   inactiveBitmapDrawableRes { R.drawable.order } // Active Indicator Bitmap Drawable Res , Set If Indicator Style = BITMAP
                   activeVectorDrawableSize { 50 } // Active Vector Drawable Size in PX
                   inactiveVectorDrawableSize { 50 } // Inactive Vector Drawable Size in PX
                   activeBitmapDrawableSize { 50 } // Inactive Bitmap Drawable Size in PX
                   inactiveBitmapDrawableSize { 50 } // Inactive Bitmap Drawable Size in PX
                   indicatorGap { R.dimen.dp_5 } // Gap Between Indicators
                   indicatorAnimationType { IndicatorAnimationType.NONE } // Indicator Animation Type  SCALE, SMOOTH_SCALE, LEFT_IN, RIGHT_IN, FLIP
                   activeIndicatorWidth { R.dimen.dp_30 } // Active Indicator Width
                   activeIndicatorHeight { R.dimen.dp_8 } // Active Indicator Height
                   inactiveIndicatorWidth { R.dimen.dp_8 } // Inactive Indicator Width
                   inactiveIndicatorHeight { R.dimen.dp_8 } // Inactive Indicator Height
                   contentAnimationType { ContentAnimationType.FADE } // Content Animation Type   FADE, SLIDER, SCALE, TOP_IN, BOTTOM_IN, BOUNCE
                   buttonColor { R.color.yellow } // Next/Finish Button Color
                   buttonTextColor { R.color.white } // Next/Finish Button Text color
                   skipButtonFontSize { 4.0F } // Skip Button Font Size
               }

For Activity

  • Step 3. Add Launcher to start Next Activity After OnBoarding

              var resultLauncher =
                         registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
                             if (result.resultCode == Activity.RESULT_OK) {
                                 startActivity(Intent(this, HomeActivity::class.java))
                                 finish()
                             }
                         }
  • Step 4. Launch Launcher using intent

             resultLauncher.launch(walkThroughIntent)

For Fragment

  • Step 3. Get Bundle from intent

                 val walkThroughBundle = walkThroughIntent.extras
  • Step 4. Add WalkThroughFragment in your navigation graph and provide your action from WalkThroughFragment to Your Fragment where you want to navigate user after OnBoarding Screens

     	 <fragment
     		android:id="@+id/walkThroughFragment"
     		android:name="com.mi.walkthroughandroid.ui.fragment.WalkThroughFragment"
     		android:label="WalkThroughFragment"
     		tools:layout="@layout/fragment_walk_through">
     		<!--Provide Your Action to navigate -->
     	</fragment>
  • Step 5. Add Navigation Action from your fragment to WalkThroughFragment

  • Step 6. Navigate from your fragment(i.e, Here we have used SampleFragment) to WalkThroughFragment

     	findNavController().navigate(
     		    R.id.action_sampleFragment_to_walkThroughFragment,
     		    walkThroughBundle
     		)
  • Step 7. Implement WalkThroughFragment.WalkThroughFragmentListener in your FragmentHostingActivity

  • Step 8. Override onSkipOrFinish() method and Navigate to next fragment

              override fun onSkipOrFinish(isFromOnSkip: Boolean) {
                      findNavController(R.id.fragmentContainer).navigate(R.id.action_walkThroughFragment_to_homeFragment)
                  }

How to contribute?

Contribution towards our repository is always welcome, we request contributors to create a pull request to the develop branch only.

How to report an issue/feature request?

It would be great for us if the reporter can share the below things to understand the root cause of the issue.

  • Library version
  • Code snippet
  • Logs if applicable
  • Device specification like (Manufacturer, OS version, etc)
  • Screenshot/video with steps to reproduce the issue

Requirements

  • minSdkVersion >= 23
  • Androidx

Library used

Limitation

  • Layout support up to 4.65 inch devices

Sample for implementation

LICENSE!

WalkThroughAndroid is MIT-licensed.

Let us know!

We’d be really happy if you send us links to your projects where you use our component. Just send an email to [email protected] And do let us know if you have any questions or suggestion regarding our work.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].