All Projects → erkutaras → ShowcaseView

erkutaras / ShowcaseView

Licence: Apache-2.0 license
ShowcaseView library for Android

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to ShowcaseView

Showcaseview
🔦The ShowcaseView library is designed to highlight and showcase specific parts of apps to the user with an attractive and flat overlay.
Stars: ✭ 281 (+43.37%)
Mutual labels:  showcase, customview
RippleBackground
Ripple animation
Stars: ✭ 32 (-83.67%)
Mutual labels:  customview
Frames
Retrieves desired frames from video.
Stars: ✭ 51 (-73.98%)
Mutual labels:  customview
BeautyClock
A simple project draw clock view by using Canvas and Kotlin
Stars: ✭ 14 (-92.86%)
Mutual labels:  customview
PaymentCardView
Custom Credit/Debit card view
Stars: ✭ 62 (-68.37%)
Mutual labels:  customview
BetterBottomBar
Fork of the BottomNavigationView from the design lib to allow for view state, accessibility and colorful animations
Stars: ✭ 33 (-83.16%)
Mutual labels:  customview
CustomTitleBar
💥【通用标题栏】通用Android标题栏控件 A Common Titlebar For Android
Stars: ✭ 106 (-45.92%)
Mutual labels:  customview
showcase
Showcasing what can be done with Bastion
Stars: ✭ 19 (-90.31%)
Mutual labels:  showcase
ComposableSweetToast
Jetpack Compose, Custom Toast, Solid Principles, Kotlin
Stars: ✭ 60 (-69.39%)
Mutual labels:  customview
NoiseView
Android library written in kotlin that add a noise effect to image.
Stars: ✭ 47 (-76.02%)
Mutual labels:  customview
AACustomFont
[UNMAINTAINED] AACustomFont is a lightweight custom font binder in XML directly in TextView, Button, EditText, RadioButton, CheckBox tags. The library is aimed to avoid custom views for custom fonts in XML and to minimize the JAVA code for setting the TypeFaces for each view.
Stars: ✭ 76 (-61.22%)
Mutual labels:  customview
epg magic carousel
Awesome RecyclerView with custom LayoutManager
Stars: ✭ 98 (-50%)
Mutual labels:  customview
MultiShapeView
支持圆角矩形,圆形自定义View
Stars: ✭ 35 (-82.14%)
Mutual labels:  customview
telco-customer-churn-in-r-and-h2o
Showcase for using H2O and R for churn prediction (inspired by ZhouFang928 examples)
Stars: ✭ 59 (-69.9%)
Mutual labels:  showcase
double-avatar-view
Instagram-like double avatar view with cropping
Stars: ✭ 31 (-84.18%)
Mutual labels:  customview
sora-editor
A cool code editor library on Android with syntax-highlighting and auto-completion. (aka CodeEditor)
Stars: ✭ 580 (+195.92%)
Mutual labels:  customview
shellbear.me
Source code of my personal website and blog ✨
Stars: ✭ 177 (-9.69%)
Mutual labels:  showcase
iMoney
iMoney 金融项目
Stars: ✭ 55 (-71.94%)
Mutual labels:  customview
yiipowered
Yii powered websites showcase
Stars: ✭ 88 (-55.1%)
Mutual labels:  showcase
DottedView
Drawing Dots in android
Stars: ✭ 13 (-93.37%)
Mutual labels:  customview

Android ShowcaseView

License

ShowcaseView is a simple-use library for Android to display new feature or whatever to the users.

It is very popular issue how to display changes in the applications for owner of the application. Because of this reason, this issue came to necessity to develop how to show changes in the application, and this library is borned and developed.

There are many libraries for showcases, but it is problem to manage history for many of them. For example, your application has BottomNavigationView with three different item. You display new feature on third view with a library. Your flow is: first, application is opened; second, 3rd item is clicked; and then showcase is displayed. After this scenerio, your user can change view via bottom or back button. If the user didn't close showcase before changing the flow, you have to dismiss the showcase before change the UI. If not, the showcase is displayed different and wrong screen.

Because of similar reasons like above, ShowcaseView library is developed. The main advantage of ShowcaseView library is that you don't need to manage or follow view visibility in your codes. Because, when you call the ShowcaseManager to display showcase, ShowcaseManager will start new Activity and in this way, you have not to write extra code to dismiss showcase.

Gradle

Step 1. Add the JitPack repository to your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Step 2. Add the library dependency to your project build.gradle:

dependencies {
    implementation 'com.github.erkutaras:ShowcaseView:1.5.0'
}

Usage

Sample code:

ShowcaseManager.Builder builder = new ShowcaseManager.Builder();
        builder.context(ShowcaseSampleActivity.this)
                .key("KEY")
                .developerMode(true)
                .view(view)
                .descriptionImageRes(R.mipmap.ic_launcher)
                .descriptionTitle("LOREM IPSUM")
                .descriptionText("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.")
                .buttonText("Done")
                .buttonVisibility(true)
                .cancelButtonVisibility(true)
                .cancelButtonColor(Color.White)
                .add()
                .build()
                .show();

To display showcaseview, ShowcaseManager.Builder is mandatory.

Mandatory

Usage Description
builder.context(Context) to start new activity
builder.key(String) to decide this showcase is displayed or not
builder.view(View) showcase will be displayed for this view
builder.descriptionTitle(String) view title
builder.descriptionText(String) short description of view's purpose
builder.add() adding the new showcase and can be called more than one to display multiple showcaseview
builder.build() prepare the focus area(s)
builder.show() display showcaseview

Optinal

Usage Description
builder.developerMode(boolean) when you test your code, showcaseview will be displayed always if this field is true
builder.descriptionImageRes(int) display and set image which is located above of title
builder.buttonText(String) display and set text of button
builder.buttonVisibility(boolean) set visibility of button (default true)
builder.cancelButtonVisibility(boolean) set visibility of cancel button (default true)
builder.cancelButtonColor(int) set color of cancel button
builder.moveButtonsVisibility(boolean) set visibility of next and previous buttons (default false)
builder.selectedMoveButtonColor(int) set color of next and previous buttons when the buttons are selected
builder.unSelectedMoveButtonColor(int) set color of next and previous buttons when the buttons are unselected
builder.alphaBackground(int) set alpha of background color
builder.colorBackground(int) set color of background
builder.colorFocusArea(int) set color of focus area
builder.colorDescText(int) set color of description text
builder.colorButtonText(int) set color of button text
builder.colorButtonBackground(int) set color of button background
builder.marginFocusArea(intInDp) set margin of focus area
builder.circle() set circle focus area
builder.rectangle() set rectangle focus area
builder.roundedRectangle() set rounded-rectangle focus area
builder.gradientFocusEnabled() set gradient enabled for focus area

Listen to Showcase dismisses

If you want to listen showcase dismisses, you can override in your Activity/Fragment like below with ShowcaseManager.REQUEST_CODE_SHOWCASE:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        if (requestCode == ShowcaseManager.REQUEST_CODE_SHOWCASE && resultCode == Activity.RESULT_OK) {
            // your code
        }
    }

Issues

If you've found an error in this library, please file an issue.

Contributing

Patches and new features are encouraged, and may be submitted by forking this project and submitting a pull request through GitHub.

License

Copyright 2018-2020 erkutaras

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
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].