An implementation of tap targets from the Material Design guidelines for feature discovery.

Overview

Video 1 Screenshot 1 Screenshot 2
TapTargetView

Maven Central Release

An implementation of tap targets from Google's Material Design guidelines on feature discovery.

Min SDK: 14

JavaDoc

Installation

TapTargetView is distributed using MavenCentral.

   repositories { 
        mavenCentral()
   }
   
   dependencies {
         implementation 'com.getkeepsafe.taptargetview:taptargetview:x.x.x'
   }

If you wish, you may also use TapTargetView with jitpack. For snapshots, please follow the instructions here.

Usage

Simple usage

TapTargetView.showFor(this,                 // `this` is an Activity
    TapTarget.forView(findViewById(R.id.target), "This is a target", "We have the best targets, believe me")
        // All options below are optional
        .outerCircleColor(R.color.red)      // Specify a color for the outer circle
	.outerCircleAlpha(0.96f)            // Specify the alpha amount for the outer circle
        .targetCircleColor(R.color.white)   // Specify a color for the target circle
        .titleTextSize(20)                  // Specify the size (in sp) of the title text
        .titleTextColor(R.color.white)      // Specify the color of the title text
        .descriptionTextSize(10)            // Specify the size (in sp) of the description text
        .descriptionTextColor(R.color.red)  // Specify the color of the description text
        .textColor(R.color.blue)            // Specify a color for both the title and description text
        .textTypeface(Typeface.SANS_SERIF)  // Specify a typeface for the text
        .dimColor(R.color.black)            // If set, will dim behind the view with 30% opacity of the given color
        .drawShadow(true)                   // Whether to draw a drop shadow or not
        .cancelable(false)                  // Whether tapping outside the outer circle dismisses the view
        .tintTarget(true)                   // Whether to tint the target view's color
        .transparentTarget(false)           // Specify whether the target is transparent (displays the content underneath)
        .icon(Drawable)                     // Specify a custom drawable to draw as the target
        .targetRadius(60),                  // Specify the target radius (in dp)
    new TapTargetView.Listener() {          // The listener can listen for regular clicks, long clicks or cancels
        @Override
        public void onTargetClick(TapTargetView view) {
            super.onTargetClick(view);      // This call is optional
            doSomething();
        }
    });

You may also choose to target your own custom Rect with TapTarget.forBounds(Rect, ...)

Additionally, each color can be specified via a @ColorRes or a @ColorInt. Functions that have the suffix Int take a @ColorInt.

Tip: When targeting a Toolbar item, be careful with Proguard and ensure you're keeping certain fields. See #180

Sequences

You can easily create a sequence of tap targets with TapTargetSequence:

new TapTargetSequence(this)
    .targets(
        TapTarget.forView(findViewById(R.id.never), "Gonna"),
        TapTarget.forView(findViewById(R.id.give), "You", "Up")
                .dimColor(android.R.color.never)
                .outerCircleColor(R.color.gonna)
                .targetCircleColor(R.color.let)
                .textColor(android.R.color.you),
        TapTarget.forBounds(rickTarget, "Down", ":^)")
                .cancelable(false)
                .icon(rick))
    .listener(new TapTargetSequence.Listener() {
        // This listener will tell us when interesting(tm) events happen in regards
        // to the sequence
        @Override
        public void onSequenceFinish() {
            // Yay
        }
        
        @Override
        public void onSequenceStep(TapTarget lastTarget, boolean targetClicked) {
            // Perform action for the current target
        }

        @Override
        public void onSequenceCanceled(TapTarget lastTarget) {
            // Boo
        }
    });

A sequence is started via a call to start() on the TapTargetSequence instance

For more examples of usage, please look at the included sample app.

Tutorials

Third Party Bindings

React Native

Thanks to @prscX, you may now use this library with React Native via the module here

NativeScript

Thanks to @hamdiwanis, you may now use this library with NativeScript via the plugin here

Xamarin

Thanks to @btripp, you may now use this library via a Xamarin Binding located here.

License

Copyright 2016 Keepsafe Software Inc.

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.
Comments
  • "java.lang.IllegalArgumentException: Given null view to target" when calling TapTarget.forToolbarMenuItem

    • [ ] I have verified the issue exists on the latest version
    • [ ] I am able to reproduce it

    Version used: Latest: 1.9.1

    Stack trace: Fatal Exception: java.lang.IllegalArgumentException: Given null view to target at com.getkeepsafe.taptargetview.ViewTapTarget.(ViewTapTarget.java:31) at com.getkeepsafe.taptargetview.ToolbarTapTarget.(ToolbarTapTarget.java:36) at com.getkeepsafe.taptargetview.TapTarget.forToolbarMenuItem(TapTarget.java:151) at sk.henrichg.phoneprofilesplus.EditorProfilesActivity.showTargetHelps(EditorProfilesActivity.java:1956) at sk.henrichg.phoneprofilesplus.EditorProfilesActivity.access$500(EditorProfilesActivity.java:67) at sk.henrichg.phoneprofilesplus.EditorProfilesActivity$6.run(EditorProfilesActivity.java:513) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5103) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java) at dalvik.system.NativeStart.main(NativeStart.java)

    Android version: Reported FC - API level <= 19

    My application uses android.support.v7.widget.Toolbar, support lib version: 25.3.1, toolbar is act as the ActionBar via setSupportActionBar().

    needs info 
    opened by henrichg 17
  • Fixed the messuring issue

    Fixed the messuring issue

    There was a problem with when the textLayouts were created. The way the library was working resulted in the getText() returning null most of the time and hence the math that deals with how big the views should be was getting corrupted.

    opened by georgi-nikolov 14
  • The TapTarget does not fit properly after rotation

    The TapTarget does not fit properly after rotation

    The TapTarget does not fit properly after rotation, In landscape mode the taptarget should be in the settings icon

    screenshot_2016-10-08-23-56-27 screenshot_2016-10-08-23-56-40

    screenshot_2016-10-09-00-03-08 screenshot_2016-10-09-00-03-18

    • [x] I have verified the issue exists on the latest version
    • [x] I am able to reproduce it

    Version used:

    Stack trace:

    Android version:

    question 
    opened by ZetDeveloper 14
  • UnsupportedOperationException on API 15

    UnsupportedOperationException on API 15

    • [X] I have verified the issue exists on the latest version
    • [X] I am able to reproduce it

    There is an issue with clipPath on API 15 because it is not supported with hardware acceleration enabled.

    Version used: 1.9.1

    Stack trace: Exception java.lang.UnsupportedOperationException: android.view.GLES20Canvas.clipPath (GLES20Canvas.java:412) com.getkeepsafe.taptargetview.TapTargetView.onDraw () android.view.View.draw (View.java:11015) android.view.View.getHardwareLayer (View.java:10253) android.view.ViewGroup.drawChild (ViewGroup.java:2947) android.view.ViewGroup.dispatchDraw (ViewGroup.java:2573) android.view.View.draw (View.java:11018) android.widget.FrameLayout.draw (FrameLayout.java:450) com.android.internal.policy.impl.PhoneWindow$DecorView.draw (PhoneWindow.java:2137) android.view.View.getDisplayList (View.java:10454) android.view.HardwareRenderer$GlRenderer.draw (HardwareRenderer.java:851) android.view.ViewRootImpl.draw (ViewRootImpl.java:2034) android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1748) android.view.ViewRootImpl.handleMessage (ViewRootImpl.java:2583) android.os.Handler.dispatchMessage (Handler.java:99) android.os.Looper.loop (Looper.java:137) android.app.ActivityThread.main (ActivityThread.java:4506) java.lang.reflect.Method.invokeNative (Method.java) java.lang.reflect.Method.invoke (Method.java:511) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:809) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:576) dalvik.system.NativeStart.main (NativeStart.java)

    Android version: 4.0.3

    bug 
    opened by marbat87 12
  • TapTargets for views near the top of the screen show title in status bar

    TapTargets for views near the top of the screen show title in status bar

    • [x] I have verified the issue exists on the latest version
    • [x] I am able to reproduce it

    Version used: 1.4.1

    Stack trace: N/A

    Android version: 7.0

    See screenshot. Would it be possible in this case to move the title below the target? I tried setting the bounds manually to a smaller square at the left/right sides of the view but the same thing happened.

    screenshot_20161019-164849

    bug 
    opened by drampelt 12
  • Sequence Problem...

    Sequence Problem...

    Version used: 1.9.1

    hi is Tap Target Sequence for Toolbar Menu Items have limit ? after import your code and add more target Sequence for menu items toolbar ... new menu items not working...

    my code :


    //toolbar ... attach menu toolbar.inflateMenu(R.menu.menu_basket);


    //actionbar... attach boomMenu with custom layout rightBmb = (BoomMenuButton) actionBar.findViewById(R.id.action_bar_right_bmb);


    public boolean onCreateOptionsMenu (Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_basket, menu);

    }


                           // work
                        TapTarget.forToolbarNavigationIcon(toolbar, "This is the back button", sassyDesc).id(1),
                     // work
                        TapTarget.forToolbarMenuItem(toolbar, R.id.action_bar_right_bmb, "This is a search 
                                 icon","As...")
                                .dimColor(android.R.color.black)
                                .outerCircleColor(R.color.colorAccent)
                                .targetCircleColor(android.R.color.black)
                                .transparentTarget(true)
                                .textColor(android.R.color.black)
                                .id(2),
    
                     //not working...
                        TapTarget.forToolbarMenuItem(toolbar, R.id.item_badge, "This is a search 
                               icon","As..")
                                .dimColor(android.R.color.black)
                                .outerCircleColor(R.color.colorAccent)
                                .targetCircleColor(android.R.color.black)
                                .transparentTarget(true)
                                .textColor(android.R.color.black)
                                .id(4),
    
                     //not working...
                        TapTarget.forToolbarMenuItem(toolbar, R.id.item_search, "This is a search 
                               icon","As..")
                                .dimColor(android.R.color.black)
                                .outerCircleColor(R.color.colorAccent)
                                .targetCircleColor(android.R.color.black)
                                .transparentTarget(true)
                                .textColor(android.R.color.black)
                                .id(5),
    

    and other codes just same as your codes...

    am i missing sth !?

    sad

        English is not my mother tongue; please excuse any errors on my part
    
    needs info 
    opened by emadph 11
  • On cancelling targetview, background screen is getting blocked.

    On cancelling targetview, background screen is getting blocked.

    • [x] I have verified the issue exists on the latest version
    • [x] I am able to reproduce it

    Version used: 1.11.0

    Stack trace: On cancelling targetview, Background view is blocked unable to do any other action on that.

    Android version: 6.0.1

    needs info 
    opened by NeerajaReddyKomma 10
  • Feature Request:- Expose method which takes menuitem as target

    Feature Request:- Expose method which takes menuitem as target

    I have a situation where I change the visibility of a menuitem in onPrepareOptionsMenu within a fragment. I want to show a TapTargetView when the item becomes visible.

    I have a reference to the menuitem and would like to create the TapTargetView with the menuitem as the target, possibly in onPrepareOptionsMenu.

    I have tried getting a reference to the toolbar and finding the item in onPrepareOptionsMenu using the id but it always resolves as null in this method.

    Could you assist or possibly add the ability to pass a menuitem?

    Thanks Jason

    question needs info 
    opened by squarenotch 10
  • BottomNavigationView item overrides the tooltip

    BottomNavigationView item overrides the tooltip

    • [x] I have verified the issue exists on the latest version
    • [x] I am able to reproduce it

    When I setting tooltip for BottomNavigationView item its overrides the tooltip.

    TapTargetView.showFor(this,
                    TapTarget.forView(bottomNavigationView.findViewById(R.id.action_menu), "This is a target", "We have the best targets, believe me"),   
                    new TapTargetView.Listener() {
                        @Override
                        public void onTargetClick(TapTargetView view) {
                            super.onTargetClick(view);
                            Toast.makeText(ExampleActivity.this, "Test", Toast.LENGTH_SHORT).show();
                        }
                    });
    
    opened by khailenkomaksym 9
  • Toolbar icons disappear

    Toolbar icons disappear

    • [x] I have verified the issue exists on the latest version
    • [x] I am able to reproduce it

    Version used: 1.8.0 Android version: 6.0.1

    I use "TapTargetSequence" with 2 "TapTarget.forBounds", in this 2 i have the same icon of my toolbar. When the TapTarget finish or is canceled my toolbar icons disappear

    Code: ` private void firstTime() {

        Display display = getActivity().getWindowManager().getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        Rect rectInfo = new Rect((size.x - 100), 0, (size.x - 50), (size.y / 6));
        Rect rectUpdate = new Rect((size.x - 200), 0, (size.x - 150), (size.y / 6));
    
        new TapTargetSequence(getActivity())
                .targets(
                        TapTarget.forBounds(
                                rectInfo, "Legenda", "Identifica as cores dos materiais")
                                .outerCircleColor(R.color.azul)
                                .targetCircleColor(R.color.branco)
                                .titleTextSize(30)
                                .descriptionTextSize(15)
                                .textColor(R.color.preto)
                                .textTypeface(Typeface.SANS_SERIF)
                                .drawShadow(true)
                                .cancelable(false)
                                .tintTarget(false)
                                .transparentTarget(false)
                                .icon(getResources().getDrawable(R.drawable.ic_help_outline_black_24dp))
                                .targetRadius(60).id(1),
    
                        TapTarget.forBounds(
                                rectUpdate, "Recarregar", "Refazer Validação de Materiais")
                                .outerCircleColor(R.color.azul)
                                .targetCircleColor(R.color.branco)
                                .titleTextSize(30)
                                .descriptionTextSize(15)
                                .textColor(R.color.preto)
                                .textTypeface(Typeface.SANS_SERIF)
                                .drawShadow(true)
                                .cancelable(false)
                                .tintTarget(false)
                                .transparentTarget(false)
                                .icon(getResources().getDrawable(R.drawable.reload))
                                .targetRadius(60).id(2)
                ).start();
    }`
    

    Screen after "TapTargetSequence" appear: image

    Screen without "TapTargetSequence" appear: image

    What wrong did i do?

    needs info 
    opened by EuMenezes 9
  • TapTargetView cut off on devices with cutout/notch

    TapTargetView cut off on devices with cutout/notch

    • [✓] I have verified the issue exists on the latest version
    • [✓] I am able to reproduce it

    Version used: 1.12.0

    Stack trace: not available

    Android version: Google Pixel 3 XL, 9.0 One Plus 6, OxygenOS 9.0.3

    It seems that TapTargetView has an issue with devices with a cutout/notch. The view is cut off at the bottom with a height that seems to be the height of the cutout. Here are screenshots from a Google Pixel 3 XL and a One Plus 6. The cutout of the One Plus 6 is smaller and so is the area that is cut off from the view. The view works fine on devices without a cutout like the Pixel (1) and Pixel 3.

    screenshot_20190204-095339

    screenshot_20190204-095335

    opened by svenjacobs 8
  • TapTarget view showing only on ist recycler view item

    TapTarget view showing only on ist recycler view item

    I have applied TapTarget view on recycler view , But each-time when i give the different index of recycler view to show target view, it is always showing on the 0th index /ist item of recycler view.

    Tap target view is not moving to other indexes.

    If someone could help me , Please assist.

    Thanks in Advance.

    opened by rkapila50 0
  • Is there any way to show the TapTargetView multiple times without sequence?

    Is there any way to show the TapTargetView multiple times without sequence?

    Hi,

    I was wondering if there is anything can be done to show TapTargetView multiple times in same activity but without sequence.

    For example, if user doesn't perform first action for 10 seconds show the first TapTargetView. Then if user don't perform second action for another 10 seconds then show another TapTargetView.

    Is this possible?

    opened by xsheru 0
  • No Means of Adding a Next Button on the sequence

    No Means of Adding a Next Button on the sequence

    • [X] I have verified the issue exists on the latest version
    • [X] I am able to reproduce it

    com.getkeepsafe.taptargetview:taptargetview:1.13.0

    Android version: 9

    opened by Samuelungbede1 0
  • How to set custom font to titleText

    How to set custom font to titleText

    Version used: 1.13.3 Android version: Android - 9

    How to set custom font to titleText ? I want to apply these style to the title text, How. can i do it ?

      <item name="android:fontFamily">@font/hk_grotesk</item>
            <item name="android:textStyle">normal</item>
            <item name="android:textSize">13sp</item>
            <item name="android:lineSpacingExtra">5dp</item>
    
    opened by kpradeepkumarreddy 0
Releases(1.13.3)
  • 1.13.3(Jul 9, 2021)

  • 1.13.2(Mar 10, 2021)

  • 1.13.1(Mar 10, 2021)

  • 1.13.0(Sep 5, 2019)

    889c7c8 Fixed unresolved dependency by JCenter 84afbb8 Update README.md (#349) 80610b6 Add NativeScript support link (#332) 8887555 Fix #304: view being cut by "non-present" navigation bar (#311) a5f4288 Improve Gradle files (#317) 4af5fe1 Remove execution permission (+x) from files (#318) e01b5e5 Don't tint transparent targets (#315) 299ee87 Migrate to AndroidX (#312) 3351ec1 Updated readme to reflect latest version

    Source code(tar.gz)
    Source code(zip)
  • 1.12.0(Jul 25, 2018)

    f9233de Fix decor related issues (#300) 8036db5 Fix not being able to cancel on last target (#299) be6d3ac Fix NPE from dismissal before determining center (#298) edb505e Replacement of "compile" with "implementation" (#291) cf27a77 Handle dismiss before show 75bb6e5 Use central build variables (#264) 4f0aee1 Update build tools to most recent ones (#261) 2e18dda Use api configuration for public dependencies. (#258) 7f60a0d Update to latest support library + SDK version (#257) e24cab4 Fix build (#256) 0c7cb95 Disable interaction during expand animation (#248) ea599d8 Update Gradle version (#253) 9dd9d47 Fix "sometimes" typo (#246)

    Source code(tar.gz)
    Source code(zip)
  • 1.11.0(Jan 7, 2018)

    a3a9c41 Fix NPE when dismiss is called immediately (#244) 30f59dc Add notion of isDismissing and gate onReady() callbacks on it (#243) 6898f18 Add startWith and startAt to TapTargetSequence (#228)

    Source code(tar.gz)
    Source code(zip)
  • 1.10.0(Oct 19, 2017)

    d2d4ae9 Catch all exceptions when removing view (#218) b812385 Add possibility to configure alpha of description text. (#213) 42284f9 Add support for TapTargetSequences to act on Dialogs (#198) 960e433 Allow sequences to be canceled (#186) f74226d Don't return an empty/gone Toolbar navigation view 40de141 Change order of removeView and onDismiss call (#177) 729cd17 Separate title and description typeface (#167) 4d36558 Remove unnecessary clip patch operation (#166)

    Source code(tar.gz)
    Source code(zip)
  • 1.9.1(Apr 1, 2017)

  • 1.9.0(Mar 27, 2017)

    88bfe0d Add outer circle alpha target option (#154) 1bdfa87 Add jittered shadow fallback for transparent targets (#151) befa6aa Dont attempt to create layouts with negative width (#147) ba0c355 Signal when last target was not clicked if continueOnCancel is true (#142) 5576f82 Return TapTargets in all factory methods (#135) c10d2f2 Extend AnimatorListenerAdapter (#131) 17e1f05 Reduce some visibility to package protected (#132) 53f66c8 Use ContextCompat.getColor() (#130)

    Source code(tar.gz)
    Source code(zip)
  • 1.8.0(Feb 9, 2017)

    cb5231f Add initial support for tablets (#127) 5a28b2a Dont use white as the 'unset' color (#125) e11a5ff Ignore NPE from modified versions of Android (#122) 7a34259 Add ability to treat tapping the outer circle as a cancel (#118) a5bd180 Allow custom icons to be set on a view tap target (#117)

    Source code(tar.gz)
    Source code(zip)
  • 1.7.0(Jan 16, 2017)

    8562acf Add debug text for interesting elements (#109) 542bf46 Calculate outer circle radius better (#107) c828694 Don't redraw tinted target if already drawn (#105) 3c5b8f3 Added onSequenceStep() (#103) efe5523 Add step listener to sequence listener (#102) 459a3af Fix #98 typo in textTypeface function usage

    Source code(tar.gz)
    Source code(zip)
  • 1.6.1(Dec 23, 2016)

    8c824c6 Determine target click via radius, not bounding box (#96) 061c9af React to window size changes (#95) f7b8085 Updating dependency versions 04e0302 Check width and height for every OS version (#90)

    Source code(tar.gz)
    Source code(zip)
  • 1.6.0(Dec 5, 2016)

    ff779ec Add support for FLAG_LAYOUT_NO_LIMITS (#85) 4c50713 Prevent negative layout widths due to insufficient space (#83) 4002d29 Target size customization (#82) 836c4ed Add listener to call to outer circle click (#77)

    Source code(tar.gz)
    Source code(zip)
  • 1.5.3(Nov 20, 2016)

  • 1.5.2(Nov 19, 2016)

    b3d295c Add support for dimen resources for text sizes (#69) ad52453 Dont allow more than one confirmed interaction (#68) d737ed5 Fail fast when given null view (#64) 3a59715 Don't repeat collapsing animation on multiple back button presses (#60)

    Source code(tar.gz)
    Source code(zip)
  • 1.5.1(Nov 1, 2016)

  • 1.5.0(Oct 24, 2016)

    d545673 Use proper method of determining bounding parent boundaries (#53) f445b5f Add ids to tap targets, pass last tap target when sequence is cancelled (#51)

    Source code(tar.gz)
    Source code(zip)
  • 1.4.1(Oct 14, 2016)

    This is a bugfix release, no new features have been added.

    204dff6 Fix listener variable shadowing and click handling (#48) 59c29f4 Clip to bounding parent if present 1a4b53c Use correct invalidation bounds and improve animations (#46)

    Source code(tar.gz)
    Source code(zip)
  • 1.4.0(Oct 13, 2016)

    432485b Add support for transparent targets 460bd4b Add text color options. Fixes #27 3a0496c Add text size options. Fixes #40 e3af3b0 Add back button handling. Supersedes #32 4f7d615 Ensure center is defined before drawing. Fixes #37

    Source code(tar.gz)
    Source code(zip)
  • 1.3.0(Oct 1, 2016)

    3c5be37 Initial support for Toolbar related views (#34) aa5201e Use view outlines for shadows on Lollipop and above cac04b9 Don't draw a circle via a path 13a8cbe Don't use view cache to draw the view 0a0d2a2 Add support for dialogs, custom parents (#31) 0f40189 Min SDK 14, fixes #29 fe748f2 Add dismiss listener, fixes #26

    Source code(tar.gz)
    Source code(zip)
  • 1.2.0(Sep 22, 2016)

    NOTE: This is an API breaking release.

    d0db08e Fix for #25 38af02a Fix issue with clipping and older APIs c33a724 Only invalidate the drawing bounds f93b0cc Add support for Spannable strings (#20) 11e70a0 Make descriptions optional (#17) 3c520f3 Remove synthetic accessors 80964cd Implement sequences and custom tap targets (#14) c9c27e7 Add onTargetCancel callback (#3)

    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(Sep 13, 2016)

Owner
Keepsafe
Empowering the average person’s digital privacy we’re innovating on existing privacy, crypto and security technology. Over 50 million users.
Keepsafe
Android Library to implement simple touch/tap/swipe gestures

SimpleFingerGestures An android library to implement simple 1 or 2 finger gestures easily Example Library The library is inside the libSFG folder Samp

Arnav Gupta 315 Dec 21, 2022
Material Design implementation for Android 4.0+. Shadows, ripples, vectors, fonts, animations, widgets, rounded corners and more.

Carbon Material Design implementation for Android 4.0 and newer. This is not the exact copy of the Lollipop's API and features. It's a custom implemen

null 3k Dec 30, 2022
A library that provides an implementation of the banner widget from the Material design.

MaterialBanner A banner displays a prominent message and related optional actions. MaterialBanner is a library that provides an implementation of the

Sergey Ivanov 252 Nov 18, 2022
Regret is an Android library for apps that wants to implement an undo/redo feature

Regret I've been developing on an editor for my Android App recently, using Jetpack Compose, but Google doesn't implement a built-in undo / redo for d

Moriafly 5 Jun 29, 2022
A Material design Android pincode library. Supports Fingerprint.

LolliPin A Lollipop material design styled android pincode library (API 14+) To include in your project, add this to your build.gradle file: //Loll

Omada Health 1.6k Nov 25, 2022
A skeleton of google's appcompat android navigation drawer with material design.

Lollipop AppCompat Skeleton A skeleton of google's appcompat android navigation drawer with material design. Compatible to work on 4.0+ Based on Googl

Sachin Shinde 99 Nov 29, 2022
(Deprecated) A custom view component that mimics the new Material Design Bottom Navigation pattern.

BottomBar (Deprecated) I don't have time to maintain this anymore. I basically wrote the whole library in a rush, without tests, while being a serious

Iiro Krankka 8.4k Dec 29, 2022
An Android library that brings the Material Design 5.1 sidebar to pre-5.1 devices.

MaterialScrollBar An Android library that brings the Material Design 5.1 scrollbar to pre-5.1 devices. Designed for Android's recyclerView. Video Imag

Turing Technologies (Wynne Plaga) 784 Nov 29, 2022
[Deprecated] Android Library that implements Snackbars (former known as Undobar) from Google's Material Design documentation.

UndoBar This lib is deprecated in favor of Google's Design Support Library which includes a Snackbar and is no longer being developed. Thanks for all

Kai Liao 577 Nov 25, 2022
An Android library that brings the Material Design 5.1 sidebar to pre-5.1 devices.

MaterialScrollBar An Android library that brings the Material Design 5.1 scrollbar to pre-5.1 devices. Designed for Android's recyclerView. Video Imag

Turing Technologies (Wynne Plaga) 784 Nov 29, 2022
AndroidTreeView. TreeView implementation for android

AndroidTreeView Recent changes 2D scrolling mode added, keep in mind this comes with few limitations: you won't be able not place views on right side

Bogdan Melnychuk 2.9k Jan 2, 2023
Proof of concept Android WebView implementation based on Chromium code

Deprecation Notice This project is un-maintained. The recommended alternative is the Crosswalk Project. I did not have the time to keep the project up

Victor Costan 1.7k Dec 25, 2022
Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the initial data.

Android-ProgressFragment Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the init

Evgeny Shishkin 813 Nov 11, 2022
A simple implementation of swipe card like StreetView

A simple implementation of swipe card like StreetView!! DONATIONS This project needs you! If you would like to support this project's further developm

Michele Lacorte 831 Jan 4, 2023
Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager (https://github.com/romannurik/android-wizardpager)

Wizard Pager Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager (ht

Julián Suárez 520 Nov 11, 2022
Wizard Pager is a library that provides an example implementation of a Wizard UI on Android

Wizard Pager is a library that provides an example implementation of a Wizard UI on Android, it's based of Roman Nurik's wizard pager.

Julián Suárez 520 Nov 11, 2022
Fully customizable implementation of "Snowfall View" on Android.

Android-Snowfall Fully customizable implementation of "Snowfall View" on Android. That's how we use it in our app Hotellook Compatibility This library

Jetradar Mobile 1.2k Dec 21, 2022
This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementation of a lesson on the Pluralsight platform, but with some code improvements

NoteKeeper-Custom-Widgets This is a sample Android Studio project that shows the necessary code to create a note list widget, And it's an implementati

Ibrahim Mushtaha 3 Oct 29, 2022
Multi Roots TreeView implementation for Android Platform with a lot of options and customization

Multi roots TreeView :palm_tree: implementation for Android Platform with a lot of options and customization

Amr Hesham 112 Jan 3, 2023