# FitButton

The button which can use with icon, text, divider, custom ripple effect, border, corner radius e.t.c.

The button which includes features:

  • Icon,
  • Text,
  • Divider,
  • Corner radius,
  • Border of the button,
  • Custom ripple effect,
  • Custom elements sizes,
  • Custom colors of elements,
  • Different positions of elements on the button

Installation

Gradle

implementation 'com.github.nikartm:fit-button:1.1.1'

Screenshots

FitButton

How to use?

Adjust the XML view:

More examples

<com.github.nikartm.button.FitButton
    android:id="@+id/fbtn"
    android:layout_width="match_parent"
    android:layout_height="58dp"
    android:layout_margin="32dp"
    android:enabled="true"
    app:fb_cornerRadius="2dp"
    app:fb_shape="rectangle"
    app:fb_divColor="#fff"
    app:fb_divWidth="1dp"
    app:fb_divHeight="40dp"
    app:fb_rippleColor="#FBE9E7"
    app:fb_iconWidth="28dp"
    app:fb_iconHeight="28dp"
    app:fb_iconPosition="left"
    app:fb_iconMarginStart="30dp"
    app:fb_iconMarginEnd="16dp"
    app:fb_icon="@drawable/ic_thumb_up"
    app:fb_iconColor="#FBE9E7"
    app:fb_textPaddingStart="16dp"
    app:fb_textColor="#FFF"
    app:fb_textGravity="start|center"
    app:fb_text="Like Me"
    app:fb_backgroundColor="#FF7043"/>

Or programmatically:

private fun setupButton() {
    fitButton = findViewById(R.id.fbtn)
    fitButton!!
            .setTextFont(R.font.share_tech_regular)
            .setTextSize(20f)
            .setIconMarginStart(16f)
            .setIconMarginEnd(12f)
            .setTextColor(Color.parseColor("#F5F5F5"))
            .setIconColor(Color.parseColor("#FFE0B2"))
            .setDividerColor(Color.parseColor("#BCAAA4"))
            .setBorderColor(Color.parseColor("#FFF59D"))
            .setButtonColor(Color.parseColor("#FF7043"))
            .setBorderWidth(2f)
            .setRippleEnable(true)
            .setRippleColor(resources.getColor(R.color.colorAccent))
            .setOnClickListener {
                Toast.makeText(this,
                        "Click on ${fitButton?.getText()}",
                        Toast.LENGTH_SHORT).show()
            }
}

Kotlin support

If you got an error

Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/jvm/internal/Intrinsics;

You may need to add Kotlin support to your project.

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

and add to the root build.gradle

buildscript {
    ext.kotlin_version = 'X.Y.Z'
    
    ...
}

GitHub