All Projects → Chrisvin → Concentriconboarding

Chrisvin / Concentriconboarding

Licence: mit
Android Concentric Onboarding library

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Concentriconboarding

Liquidswipe
Android LiquidSwipe Library
Stars: ✭ 721 (+1616.67%)
Mutual labels:  library, viewpager, page, pager
Transformerslayout
🔥 App金刚区导航菜单,类似淘宝、QQ音乐等APP导航,方格布局横向多行滑动翻页带滚动条
Stars: ✭ 258 (+514.29%)
Mutual labels:  viewpager, page, pager
stepper-indicator
Step indicator for onboarding or simple viewpager
Stars: ✭ 180 (+328.57%)
Mutual labels:  viewpager, onboarding
Shviewpager
A simple view pager for iOS. Compatible with iOS 8.0 or later.
Stars: ✭ 127 (+202.38%)
Mutual labels:  viewpager, pager
Reside-Menu
By applying viewpager animation you can also make AMAZING Reside Menu's
Stars: ✭ 72 (+71.43%)
Mutual labels:  viewpager, pager
Jxpagelistview
高仿闲鱼、转转、京东、中央天气预报等主流APP列表底部分页滚动视图
Stars: ✭ 377 (+797.62%)
Mutual labels:  page, pager
Walk-Through-Screen
This library provides easy ways to add onboarding or pager screens with different animation and indicators.
Stars: ✭ 31 (-26.19%)
Mutual labels:  viewpager, pager
Cmpagetitleview
✍️一分钟集成类似抖音,新浪微博,腾讯视频,网易新闻,今日头条等常见的标题栏样式,api灵活易扩展,支持Cocoapods和Masonry布局,支持ChildController的完整生命周期
Stars: ✭ 270 (+542.86%)
Mutual labels:  viewpager, pager
Cardslideview
一行代码实现ViewPager卡片效果,比ViewPager2更强大,底层同样是RecyclerView
Stars: ✭ 301 (+616.67%)
Mutual labels:  viewpager, page
Infinitecycleviewpager
Infinite cycle ViewPager with two-way orientation and interactive effect.
Stars: ✭ 5,720 (+13519.05%)
Mutual labels:  library, viewpager
Onboardingfreebi
Simple demo of onboarding freebie screens from uplabs.com
Stars: ✭ 37 (-11.9%)
Mutual labels:  viewpager, onboarding
Redash
Tiny functional programming suite for JavaScript.
Stars: ✭ 40 (-4.76%)
Mutual labels:  library
Lara Eye
Filter your Query\Builder using a structured query language
Stars: ✭ 39 (-7.14%)
Mutual labels:  library
Stealtool
📚 盗取手机敏感信息,Android 6.0之上兼容
Stars: ✭ 39 (-7.14%)
Mutual labels:  library
Cordova Plugin Inappbrowser
Apache Cordova Plugin inappbrowser
Stars: ✭ 994 (+2266.67%)
Mutual labels:  library
Depressurizer
A Steam library categorizing tool.
Stars: ✭ 1,008 (+2300%)
Mutual labels:  library
Xna.js
WebGL framework strongly inspired by the XNA library
Stars: ✭ 40 (-4.76%)
Mutual labels:  library
Olingo Odata4 Js
Mirror of Apache Olingo
Stars: ✭ 38 (-9.52%)
Mutual labels:  library
Gifloader
An Android Library to load your GIF files
Stars: ✭ 38 (-9.52%)
Mutual labels:  library
Blink Mind React
A mind map library for react that based on immutable.js.
Stars: ✭ 38 (-9.52%)
Mutual labels:  library

ConcentricOnboarding

Android Concentric Onboarding library

License: MIT API

Slide Mode Reveal Mode

ConcentricOnboarding is a viewpager library that can be used to make awesome onboarding designs.

If you like this, you'll like LiquidSwipe as well.

Demo app

To run the demo project, clone the repository and run it via Android Studio. (OR) Download the latest demo apk from releases.

Usage

Set up the dependency

  1. Add the JitPack repository to your root build.gradle at the end of repositories:
allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}
  1. Add the ConcentricOnboarding dependency in the build.gradle:
implementation 'com.github.Chrisvin:ConcentricOnboarding:1.0'

Use ConcentricOnboardingViewPager instead of the normal ViewPager

<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.jem.concentriconboarding.ConcentricOnboardingViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>

Use a ConcentricOnboardingLayout as the base container in the fragment layouts

<?xml version="1.0" encoding="utf-8"?>
<com.jem.concentriconboarding.layout.ConcentricOnboardingConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".DummyFragment">

    <!--  Fill with your views, just like you would in a normal ConstraintLayout  -->

</com.jem.concentriconboarding.layout.ConcentricOnboardingConstraintLayout>

<!--  Also supports ConcentricOnboardingFrameLayout & ConcentricOnboardingLinearLayout  -->

And you're done, easy-peasy. ^_^

Customization

Via XML

<com.jem.concentriconboarding.ConcentricOnboardingViewPager
    ...
    app:mode="reveal" // Default is slide
    app:scrollerDuration="2000" // Default is 1000
    app:translationXFactor="3" // Default is 2
    app:translationYFactor="0.5" // Default is 0.35
    app:scaleXFactor="0.75" // Default is 0.5
    app:scaleYFactor="0.75" // Default is 0.5
    />

Via Programmatically

viewpager.mode = ConcentricOnboardingViewPager.Mode.REVEAL // Default is SLIDE
viewpager.setDuration(3000) // Default is 1000
viewpager.translationXFactor = 1.5f // Default is 2f
viewpager.translationYFactor = 1f // Default is 0.35f
viewpager.scaleXFactor = 2f // Default is 0.5f
viewpager.scaleYFactor = 2f // Default is 0.5f
viewpager.revealCenterPoint = PointF(centerX, centerY) // Default is screen center
viewpager.revealRadius = radius // Default is 0

Creating custom swipe animations

The concept for the ClipPathProvider in ConcentricOnboarding is the same as that in the LiquidSwipe library & EasyReveal library (If you haven't already, then you should really check it out).

You can create your own swipe animation by extending the ClipPathProvider and implementing the getPath() method. getPath() provides the Path for a given percent value on the provided view. The path gotten from getPath() is then used to clip the view using canvas.clipPath(path, op) (The op value is provided by the ClipPathProvider as well). You can then set your custom ClipPathProvider to your layouts.

Bugs and Feedback

For bugs, questions and discussions please use the Github Issues.

Credits

  1. Cuberto - Onboarding design inspiration
  2. Alvaro Fabre - Designer of the lottie animations in the demo app

License

MIT License

Copyright (c) 2020 Jem

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
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].