📱Android Library to implement animated, 😍beautiful, 🎨stylish Material Dialog in android apps easily.

Overview

Maven Central API Android Weekly

Github Followers GitHub stars GitHub forks GitHub watchers Twitter Follow

Material Dialogs for Android 📱

📱 Android Library to implement animated, 😍 beautiful, 🎨 stylish Material Dialog in android apps easily.

1. Material Dialog 2. Animated Material Dialog 3. Bottom Sheet Material Dialog 4. Animated Bottom Sheet Material Dialog

Table of Contents:

Introduction

MaterialDialog library is built upon Google's Material Design library. This API will be useful to create rich, animated, beautiful dialogs in Android app easily. This library implements Airbnb's Lottie library to render After Effects animation in app. Refer this for Lottie documentation.

Types of Dialog

MaterialDialog library provides two types of dialog i.e.

1. Material Dialog 2. Bottom Sheet Material Dialog
This is basic material dialog which has two material buttons (Same as Android's AlertDialog) as you can see below. This is Bottom Sheet material dialog which has two material buttons which is showed from bottom of device as you can see below.

Implementation

Implementation of Material Dialog library is so easy. You can check /app directory for demo. Let's have look on basic steps of implementation.

Prerequisite

i. Gradle

In Build.gradle of app module, include these dependencies. If you want to show animations, include Lottie animation library.

This library is available on MavenCentreal

repositories {
    mavenCentral()
}

dependencies {

    // Material Dialog Library
    implementation 'dev.shreyaspatil.MaterialDialog:MaterialDialog:2.1.1'

    // Material Design Library
    implementation 'com.google.android.material:material:1.0.0'

    // Lottie Animation Library
    implementation 'com.airbnb.android:lottie:3.3.6'
}

ii. Set up Material Theme

Setting Material Theme to app is necessary before implementing Material Dialog library. To set it up, update styles.xml of values directory in app.

<resources>
    <style name="AppTheme" parent="Theme.MaterialComponents.Light">
        <!-- Customize your theme here. -->
        ...
    </style>
</resources>

These are required prerequisites to implement Material Dialog library.

iii. Customize Dialog Theme (Optional)

If you want to customize dialog view, you can override style in styles.xml as below.

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:fontFamily">@font/montserrat</item>

        <!-- Customize your theme here. -->
        <item name="material_dialog_background">#FFFFFF</item>
        <item name="material_dialog_title_text_color">#000000</item>
        <item name="material_dialog_message_text_color">#5F5F5F</item>
        <item name="material_dialog_positive_button_color">@color/colorAccent</item>
        <item name="material_dialog_positive_button_text_color">#FFFFFF</item>
        <item name="material_dialog_negative_button_text_color">@color/colorAccent</item>
    </style>

Create Dialog Instance

As there are two types of dialogs in library. Material Dialogs are instantiated as follows.

i. Material Dialog

MaterialDialog class is used to create Material Dialog. Its static Builder class is used to instantiate it. After building, to show the dialog, show() method of MaterialDialog is used.

        MaterialDialog mDialog = new MaterialDialog.Builder(this)
                .setTitle("Delete?")
                .setMessage("Are you sure want to delete this file?")
                .setCancelable(false)
                .setPositiveButton("Delete", R.drawable.ic_delete, new MaterialDialog.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int which) {
                        // Delete Operation
                    }
                })
                .setNegativeButton("Cancel", R.drawable.ic_close, new MaterialDialog.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int which) {
                        dialogInterface.dismiss();
                    }
                })
                .build();

        // Show Dialog
        mDialog.show();

ii. Bottom Sheet Material Dialog

BottomSheetMaterialDialog class is used to create Bottom Sheet Material Dialog. Its static Builder class is used to instantiate it. After building, to show the dialog, show() method of BottomSheetMaterialDialog is used.

        BottomSheetMaterialDialog mBottomSheetDialog = new BottomSheetMaterialDialog.Builder(this)
                .setTitle("Delete?")
                .setMessage("Are you sure want to delete this file?")
                .setCancelable(false)
                .setPositiveButton("Delete", R.drawable.ic_delete, new BottomSheetMaterialDialog.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int which) {
                        Toast.makeText(getApplicationContext(), "Deleted!", Toast.LENGTH_SHORT).show();
                        dialogInterface.dismiss();
                    }
                })
                .setNegativeButton("Cancel", R.drawable.ic_close, new BottomSheetMaterialDialog.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int which) {
                        Toast.makeText(getApplicationContext(), "Cancelled!", Toast.LENGTH_SHORT).show();
                        dialogInterface.dismiss();
                    }
                })
                .build();

        // Show Dialog
        mBottomSheetDialog.show();

Show Animations

Material Dialog Bottom Sheet Material Dialog

Animations in this library are implemented using Lottie animation library. You can get free animations files here. You can find varieties of animation files on https://lottiefiles.com. *.json file downloaded from LottieFiles should be placed in android project. There are two ways to place animation file (*.json).

For example, here delete_anim.json animation file is used to show file delete animation.

i. Using Resource File

Downloaded json file should placed in raw directory of res.

In code, setAnimation() method of Builder is used to set Animation to the dialog.

Prototype :

setAnimation(int resourceId)

Resource file should be passed to method. e.g. R.raw.delete_anim.

        MaterialButton mDialog = new MaterialDialog.Builder(this)
                // Other Methods to create Dialog........               
                .setAnimation(R.raw.delete_anim)                
                //...

ii. Using Asset File

Downloaded json file should placed in asset directory.

In code, setAnimation() method of Builder is used to set Animation to the dialog.

Prototype:

setAnimation(String fileName)

Only file name with extensions should passed to method.

        MaterialButton mDialog = new MaterialDialog.Builder(this)
                // Other Methods to create Dialog........               
                .setAnimation("delete_anim.json")               
                //...

iii. Getting LottieAnimationView

To get View of Animation for any operations, there is a method in Material Dialogs which returns LottieAnimationView of dialog.

        // Get Animation View
        LottieAnimationView animationView = mDialog.getAnimationView();
        // Do operations on animationView

Dialog State Listeners

There are three callback events and listeners for Dialog.

Following are interfaces for implementations:

  • OnShowListener() - Listens for dialog Show event. Its onShow() is invoked when dialog is displayed.
  • OnCancelListener() - Listens for dialog Cancel event. Its onCancel() is invoked when dialog is cancelled.
  • OnDismissListener() - Listens for dialog Dismiss event. Its onDismiss() is dismiss when dialog is dismissed.
       ... 
       mDialog.setOnShowListener(this);
       mDialog.setOnCancelListener(this);
       mDialog.setOnDismissListener(this);
    }
    
    @Override
    public void onShow(DialogInterface dialogInterface) {
        // Dialog is Displayed
    }

    @Override
    public void onCancel(DialogInterface dialogInterface) {
        // Dialog is Cancelled
    }

    @Override
    public void onDismiss(DialogInterface dialogInterface) {
        // Dialog is Dismissed
    }
}

Contribute

Let's develop with collaborations. We would love to have contributions by raising issues and opening PRs. Filing an issue before PR is must. See Contributing Guidelines.

Credits

This library is built using following open-source libraries.

License

Project is published under the Apache 2.0 license. Feel free to clone and modify repo as you want, but don't forget to add reference to authors :)

Comments
  • [BUG] Button not accessible on small screens

    [BUG] Button not accessible on small screens

    Hi, thanks for your work on this lib, it's super useful !

    Unfortunately, some of my users are complaining that they can't click on the dialog button because it's simply out of the window, in portrait or paysage. I found out that they have relatively small screens (720p or less).

    On my larger smartphone, the animation is effectively disabled in paysage to make some more room, but on smaller phones it doesn't work either way.

    Is there a way to fix this properly in the lib so users can scroll to the dialog button ?

    Thanks for your input,

    opened by Awsom3D 14
  • Some issue while implementing

    Some issue while implementing

    I tried this, but i am facing some issue with this. I called it in the on click listener of my button, but it is not taking this, getApplicationContext etc in the builder argument. I have attached a screenshot of the same. I also tried to call in activity fragment but the same issue there. if i pass getApplicationContext, it shows the class has been called in Protected state. Please help!

    BottomSheetMaterialDialog dialog=new BottomSheetMaterialDialog.Builder(getActivity().getApplicationContext());

    Screenshot (8)

    enhancement 
    opened by mathuadi3 8
  • Lottie animation won't display

    Lottie animation won't display

    After following implementation of the dialog, the animation won't be displayed like in the examples provided.

    Here is what i did: // Material Design implementation 'com.google.android.material:material:1.2.0-alpha06' // Material Dialog Library implementation 'com.shreyaspatil:MaterialDialog:2.1' // Lottie Animation Library implementation 'com.airbnb.android:lottie:3.4.0'

    Added the animation used in your examples to the raw folder

    image

    Called dialog val mDialog = MaterialDialog.Builder(activity) .setTitle("Remove?") .setMessage("Are you sure want to remove this book?") .setCancelable(false) .setPositiveButton("Remove", R.drawable.ic_delete_white_24dp) { _, _ -> remove(book, initialBooks.indexOf(book)) } .setNegativeButton("Cancel", R.drawable.ic_close_24dp) { dialog, _ -> dialog.dismiss() } .setAnimation(R.raw.deletion_one_file) .build()

    mDialog.show()

    This is the result image

    This is inside of a Activity()

    I even tried measuring the mDialog.animationView and returns height: 350 but width: -1

    update 1: I get this error when build() function is called W/System.err: java.lang.UnsupportedOperationException: Can't convert to ComplexColor: type=0x2 W/System.err: at android.content.res.ResourcesImpl.loadComplexColorForCookie(ResourcesImpl.java:1152) at android.content.res.ResourcesImpl.loadComplexColorFromName(ResourcesImpl.java:1028) at android.content.res.ResourcesImpl.loadColorStateList(ResourcesImpl.java:1107) at android.content.res.Resources.getColorStateList(Resources.java:1126) at android.content.Context.getColorStateList(Context.java:709) at androidx.core.content.ContextCompat.getColorStateList(ContextCompat.java:492) at com.shreyaspatil.MaterialDialog.AbstractDialog.createView(AbstractDialog.java:180) at com.shreyaspatil.MaterialDialog.MaterialDialog.<init>(MaterialDialog.java:36) at com.shreyaspatil.MaterialDialog.MaterialDialog$Builder.build(MaterialDialog.java:166) at com.guia.app.activities.MainActivity.setViews(MainActivity.kt:56) at com.guia.app.activities.MainActivity.onCreate(MainActivity.kt:35) at android.app.Activity.performCreate(Activity.java:7989) at android.app.Activity.performCreate(Activity.java:7978) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3316) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3485) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2045) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7478) W/System.err: at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)

    opened by FernandoCCNunes 7
  • Support for HTML text in message

    Support for HTML text in message

    Hi,

    is there a way to use html text, i want for example this text:

    Hi, my name is John. But I want John to be bold text.

    Can I do this ? I tried with strings file "" but not.

    opened by yustapps 6
  • [BUG] Button alignment with multi-line-text

    [BUG] Button alignment with multi-line-text

    Version: 2.2.2 API-Level: 30 Problem: If only one of the two buttons (positive, negative) has a multi-line-text, then this button is no longer aligned with the other one. Screenshot: See here

    Is this behavior intended or is there a configuration option somewhere that I missed? I could eventually provide a PR for this if the fix is easy. :+1:

    opened by jatsqi 5
  • Generic Message support: Support for separate plain text and Spanned text

    Generic Message support: Support for separate plain text and Spanned text

    IMO using the html markup <br> is an hotfix, because if you want the MaterialDialog to be easy to use for users switching from classic AlertDialog, you can't ask them to change all of their translations, and use another language (even if HTML is pretty simple) to make it work.

    Maybe keep the way things were before and add an dialog.enableHtml(boolean) ?

    Originally posted by @Awsom3D in https://github.com/PatilShreyas/MaterialDialog-Android/issues/44#issuecomment-826120127

    opened by PatilShreyas 3
  • [Tech Debt] Migrate Java to Kotlin

    [Tech Debt] Migrate Java to Kotlin

    With Kotlin being the recommended language for Android Development, it would be great to start migrating to avoid making the library and repository obsolete in future.

    opened by manasarora98 2
  • [FEATURE REQUEST] Message text not centered

    [FEATURE REQUEST] Message text not centered

    Hi, Now the dialog message text is forced to be aligned centred. It would be nice to choose the alignment (left, right,...). Or at least by default left and not center. Thanks

    opened by fmeneuhe 2
  • Button Color is different setted in style.xml

    Button Color is different setted in style.xml

    I use theme that used in sample project and color change colorPrimary, colorPrimaryDark. colorAccent to my style

    but totally different color is shown to Application that color be found anywhere of project.

    please help me,

    opened by hwaniRed 2
  • Build failed[BUG/FEATURE REQUEST] TITLE HERE

    Build failed[BUG/FEATURE REQUEST] TITLE HERE

    Write information about Bug/Feature Request here The project is running fine when i remove the implementation 'com.airbnb.android:lottie:3.3.6' from the gradle

    The error is caused due to implementation 'com.airbnb.android:lottie:3.3.6' https://stackoverflow.com/q/61660305/13472560

    opened by omkarghurye1998 2
  • This component requires that you specify a valid TextAppearance attribute.

    This component requires that you specify a valid TextAppearance attribute.

    I had an error when I tried to run the project.

    The error:

    Caused by: java.lang.IllegalArgumentException: This component requires that you specify a valid TextAppearance attribute. Update your app theme to inherit from Theme.MaterialComponents (or a descendant).

    My styles.xml

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.Light">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:fontFamily">@font/montserrat</item>
    
        <!-- Customize your theme here. -->
        <item name="material_dialog_background">#FFFFFF</item>
        <item name="material_dialog_title_text_color">#000000</item>
        <item name="material_dialog_message_text_color">#5F5F5F</item>
        <item name="material_dialog_positive_button_color">@color/colorAccent</item>
        <item name="material_dialog_positive_button_text_color">#FFFFFF</item>
        <item name="material_dialog_negative_button_text_color">@color/colorAccent</item>
    </style>
    
    opened by DiMiTriFrog 2
  • [ISSUE] Theme is not changed in api 32

    [ISSUE] Theme is not changed in api 32

    I have two themes.xml, day and night. And I tried to add custom material dialog items to themes.xml but style did not change

    <resources xmlns:tools="http://schemas.android.com/tools">
        <!-- Base application theme. -->
        <style name="Theme.DANISHBETON" parent="Theme.MaterialComponents.Light.NoActionBar">
            <!-- Primary brand color. -->
            <item name="colorPrimary">@color/purple_500</item>
            <item name="colorPrimaryVariant">@color/purple_700</item>
            <item name="colorOnPrimary">@color/white</item>
            <!-- Secondary brand color. -->
            <item name="colorSecondary">@color/teal_200</item>
            <item name="colorSecondaryVariant">@color/teal_700</item>
            <item name="colorOnSecondary">@color/black</item>
            <!-- Status bar color. -->
            <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
            <!-- Customize your theme here. -->
            <!-- MD. -->
            <item name="material_dialog_background">#FFFFFF</item>
            <item name="material_dialog_title_text_color">#000000</item>
            <item name="material_dialog_message_text_color">#5F5F5F</item>
            <item name="material_dialog_positive_button_color">@color/danisred</item>
            <item name="material_dialog_positive_button_text_color">#FFFFFF</item>
            <item name="material_dialog_negative_button_text_color">@color/danisred</item>
        </style>
    <resources>
    
    opened by elboyev 1
  • Migrated the project to Kotlin

    Migrated the project to Kotlin

    Summary

    Migrated the whole project to use Kotlin as the primary language. This results in reduction of the codebase size, along with improved code readability.

    Resolves #32

    Build Dialogs with Kotlin DSL

    Building dialogs is easier than ever with kotlin dsl.

    Animated Material Dialog

    val animatedMaterialDialog = materialDialog(this) {
        title = "Delete"
        message = "Are you sure you want to delete this file?"
        isCancelable = false
        setPositiveButton("Delete", R.drawable.ic_delete) { dialog, which ->
            Toast.makeText(applicationContext, "Deleted!", Toast.LENGTH_SHORT).show()
            dialog.dismiss()
        }
        setNegativeButton("Cancel", R.drawable.ic_close) { dialog, which ->
            Toast.makeText(applicationContext, "Cancelled!", Toast.LENGTH_SHORT).show()
            dialog.dismiss()
        }
        setAnimation("delete_anim.json")
    }
    

    Animated BottomSheetMaterialDialog

    val animatedBottomSheetDialog = bottomSheetMaterialDialog(this) {
        title = "Delete"
        message = "Are you sure you want to delete this file?"
        isCancelable = false
        setPositiveButton("Delete", R.drawable.ic_delete) { dialog, which ->
            Toast.makeText(applicationContext, "Deleted!", Toast.LENGTH_SHORT).show()
            dialog.dismiss()
        }
        setNegativeButton("Cancel", R.drawable.ic_close) { dialog, which ->
            Toast.makeText(applicationContext, "Cancelled!", Toast.LENGTH_SHORT).show()
            dialog.dismiss()
        }
        setAnimation("delete_anim.json")
    }
    
    
    Hacktoberfest hacktoberfest-accepted 
    opened by 2307vivek 2
Releases(v2.2.3)
  • v2.2.3(Jan 8, 2022)

    🔮 What's new?

    • Added library compatibility with Java 1.8
    • Added library compatibility with Android 11 (API 31)

    ✅Fixes

    • [#51] Set button alignments to center in dialog

    ✨ New Contributors

    Many thanks🙏 to superstar contributors for improving and helping to make this library better 🚀.

    • @germainkevinbusiness made his first contribution in https://github.com/PatilShreyas/MaterialDialog-Android/pull/59
    • @jatsqi made their first contribution in https://github.com/PatilShreyas/MaterialDialog-Android/pull/52.

    Full Changelog: https://github.com/PatilShreyas/MaterialDialog-Android/compare/v2.2.2...v2.2.3

    Source code(tar.gz)
    Source code(zip)
  • v2.2.2(Apr 25, 2021)

    This is a patch release including improvements.

    🔮 What's new?

    [#49] Generic Message support: Support for separate plain text and Spanned text

    Added support for plain text (i.e. String) as well as Spanned text for dialog's message.

    Earlier, in v2.2.1, there was only support for spanned formatted text for the message which was not generic. This fix now provides both the available configuration as per the need of the developer and the use case.

    For example,

    • To set plain text message for dialog:
        .setMessage("Lorem Ipsum") 
    
    • To Spanned text message for dialog:
        .setMessage(Html.fromText("<b>Lorem <i>Ipsum</i></b>")) 
    

    Many thanks 🙏 to @Awsom3D for suggesting this improvement and helping to make this library better 🚀.

    Source code(tar.gz)
    Source code(zip)
  • v2.2.1(Apr 24, 2021)

    🔮 What's new?

    • [#42] Added alignment configuration for title and message. These texts can be aligned at LEFT, CENTER, RIGHT.
    • [#35] Added support for HTML spanned text for dialog message.

    ✅ Fixes

    • [#44] Added scrolling support for a dialog content (If the message text is too long then for small screen devices, dialog was not sufficient to show details and actions).

    Many thanks 🙏 to @Awsom3D @fmeneuhe @yustapps for filing issues and suggesting these improvement features and making this library more usable.

    Source code(tar.gz)
    Source code(zip)
  • v2.1.1(Feb 13, 2021)

    Major changes

    • Changes in Package: com.shreyaspatil.* to dev.shreyaspatil.*.
    • Library is available on MavenCentral

    How to use the library from maven central? See below snippet

    
    repositories {
        mavenCentral()
    }
    
    dependencies {
    
        // Material Dialog Library
        implementation 'dev.shreyaspatil.MaterialDialog:MaterialDialog:2.1.1'
    }
    
    Source code(tar.gz)
    Source code(zip)
  • v2.1(Feb 1, 2020)

  • v2.0(Dec 10, 2019)

    This version is stable and with a lot of improvements.

    • BottomSheetMaterialDialog can be instantiated in Fragment. (#18)
    • Provided Custom Styling for dialog. (#17) - Override custom styles for dialog.
    • Fixes Orientation View. (#9) - The animation will not be shown when device orientation is Landscape.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Jun 10, 2019)

Owner
Shreyas Patil
👨‍🎓 IT Undergrad 📱 Mobile App Developer ❤️Android 🌎Web Developer ⚙️Open Source Enthusiast 👨‍💻Organizer @KotlinMumbai
Shreyas Patil
Animated Material circular button

Material Circular Button Circular button for Android in Google Material Style How to use Clone this proyect and import the module "materialCircularBut

Adrián Lomas 217 Nov 25, 2022
Library containing over 2000 material vector icons that can be easily used as Drawable or as a standalone View.

Material Icon Library A library containing over 2000 material vector icons that can be easily used as Drawable, a standalone View or inside menu resou

null 2.3k Dec 16, 2022
Custom drawer implementation for Material design apps.

material-drawer Custom drawer implementation for Material design apps. Demo A demo app is available on Google Play: Screenshots Fixed items Select pro

Jan Heinrich Reimer 600 Nov 18, 2022
ToggleIconView is a collection library of animated two-stage toggle icons for Android.

ToggleIconView ToggleIconView is a collection library of animated two-stage toggle icons for Android. Installation JitPack repository // Project level

Özgür Görgülü 6 Sep 10, 2022
Material Shadows for android : A library for supporting convex material shadows

MaterialShadows A library for seamlessly integrating Material shadows. The library takes existing material shadows to next level by adding the followi

Harjot Singh Oberai 2.2k Dec 19, 2022
An Android library aimed to get the beautiful CardViews that Google shows at its official design specifications

MaterialList Discontinued This library will not receive any updates, as I do not have the time or knowledge to improve it. If anyone forks it and want

null 1.6k Nov 29, 2022
😍 A beautiful, fluid, and extensible dialogs API for Kotlin & Android.

Material Dialogs View Releases and Changelogs Modules The core module is the fundamental module that you need in order to use this library. The others

Aidan Follestad 19.5k Dec 31, 2022
A beautiful notes app

Background Although there are many notes apps out there, they're all hideous, glitchy, low quality or all 3 at the same time. Maybe the developer view

Om Godse 1k Jan 7, 2023
The flexible, easy to use, all in one drawer library for your Android project. Now brand new with material 2 design.

MaterialDrawer ... the flexible, easy to use, all in one drawer library for your Android project. What's included ?? • Setup ??️ • Migration Guide ??

Mike Penz 11.6k Dec 27, 2022
[] Android Library that implements Snackbars from Google's Material Design documentation.

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

null 1.5k Dec 16, 2022
Default colors and dimens per Material Design guidelines and Android Design guidelines inside one library.

Material Design Dimens Default colors and dimens per Material Design guidelines and Android Design guidelines inside one library. Dimens Pattern: R.di

Dmitry Malkovich 1.4k Jan 3, 2023
A library support form with material design, construct same with Android UI Framework

SwingUI A slight Java Swing library support form with material design, construct same with Android UI Framework writen in Kotlin Supported: 1. Screen:

Cuong V. Nguyen 3 Jul 20, 2021
A Material Design ViewPager easy to use library

MaterialViewPager Material Design ViewPager easy to use library Sample And have a look on a sample Youtube Video : Youtube Link Download In your modul

Florent CHAMPIGNY 8.2k Jan 1, 2023
MaterialPickers-in-android - A simple android project that shows how to create material pickers for date and time

MaterialPickers-in-android A simple android project that shows how to create mat

Segun Francis 2 Apr 28, 2022
Floating Action Button for Android based on Material Design specification

FloatingActionButton Yet another library for drawing Material Design promoted actions. Features Support for normal 56dp and mini 40dp buttons. Customi

Zendesk 6.4k Dec 26, 2022
Implementation of Ripple effect from Material Design for Android API 9+

RippleEffect ExpandableLayout provides an easy way to create a view called header with an expandable view. Both view are external layout to allow a ma

Robin Chutaux 4.9k Dec 30, 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 Jan 9, 2023
Android drawer icon with material design animation

LDrawer Android drawer icon with material design animation Note Basically same as appcompat_v7 version 21, you can use appcompat_v7 compile 'com.andro

Hasan Keklik 1.4k Dec 25, 2022
A material horizontal calendar view for Android based on RecyclerView

Horizontal Calendar A material horizontal calendar view for Android based on RecyclerView. Installation The library is hosted on jcenter, add this to

Mulham Raee 1.2k Dec 15, 2022