Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

com.github.medyo:fancybuttons

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

com.github.medyo:fancybuttons

An Android library to easily create fancy buttons without the need of drawable files.

  • 1.8.1
  • Source
  • Maven
  • Socket score

Version published
Maintainers
1
Source

:warning: This library was made years ago when it wasn't that easy to customize Android buttons like today. I highly recommend you to use Material Design button as it offers the same features and most importantly it's backed by the Android Team.


Fancybuttons

Icons, Borders, Radius ... for Android buttons jCenter jitPack Android Arsenal

Android About Page Cover

Overview

FancyButtons Android

Demo Application : Download APK

Features

  • Border (stroke, radius, color)
  • Background (normal, focus)
  • Icon (Drawable, font Icon)
  • Icon (Position, size)
  • Icon Size
  • Icon Padding

Changelog

  • 1.9.1

    • Fix getting the font
  • 1.9.0

    • Add support for font resources (For text font only)
    • Increase min API level to 14
    • Now you can use these to set text font (res/font/roboto_slab_bold.ttf): android:fontFamily="@font/roboto_slab_bold" fancy:fb_textFontRes="@font/roboto_slab_bold"
    • Add dependency on support library used only when using font resources.
  • 1.8.4

    • Fix Text Gravity
    • Add Ability to define custom radius value for each corner
  • 1.8.3

    • Fixed long searching of font
    • Added ability to use android:text, android:textSize, android:testAllCaps attributes
    • Fixed preview issues with android:* attrs
    • Added opportunity to use android:* attrs in styles
    • Added ability to use custom LayoutParams instead of the default one
    • Force refreshing the view when setEnabled(boolean) is called
    • Minor optimization & refactoring
  • 1.8.2

    • Added ability to disable button
    • Added ability to use system font
  • 1.8.1

    • Fix Bug related to loading custom fonts
  • 1.8

    • Add setIconResource(Drawable)
    • Cache fonts
  • 1.7

    • Fix ripple effect when background is transparent
    • Add capitalization of text
  • 1.6

    • Add ripple effect
    • Upgrade Font Awesome to 4.5.0

Installation

implementation 'com.github.medyo:fancybuttons:1.9.1'

To use font resources add support library to your dependencies:

implementation "com.android.support:appcompat-v7:$support_lib_version"

Usage

1 - Include FancyButtons namespace to the root element :

xmlns:fancy="http://schemas.android.com/apk/res-auto"

2 - Add the FancyButton View with custom params :

<mehdi.sakout.fancybuttons.FancyButton
android:id="@+id/btn_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Supported Attributes
XML AttributeJava AttributeDescription
fancy:fb_textsetText(String)Text of the button
fancy:fb_textColorsetTextColor(int)Text Color of the button
fancy:fb_textSizesetTextSize(int)Size of the text
fancy:fb_textFontsetCustomTextFont(String)FontFamily of the text
fancy:fb_textFontRessetCustomTextFont(int)FontFamily of the text using font resource. REQUIRES support library
fancy:fb_textGravitysetTextGravity(Int)Gravity of the text
fancy:fb_iconResourcesetIconResource(Drawable)Drawable icon of the button
fancy:fb_iconPositionsetIconPosition(int)Position of the icon : Left, Right, Top, Bottom
fancy:fb_fontIconResourcesetIconResource(String)font icon of the button
fancy:fb_fontIconSizesetFontIconSize(int)Size of the icon
fancy:fb_iconFontsetCustomIconFont(String)FontFamily of the icon
fancy:fb_borderWidthsetBorderWidth(int)Width of the border
fancy:fb_borderColorsetBorderColor(int)Color of the border
fancy:fb_defaultColorsetBackgroundColor(int)Background color of the button
fancy:fb_focusColorsetFocusBackgroundColor(int)Focus Color of button background
fancy:fb_disabledColorsetDisableBackgroundColor(int)Disabled Color of button background
fancy:fb_disabledTextColorsetDisableTextColor(int)Disabled Color of button text
fancy:fb_disabledBorderColorsetDisableBorderColor(int)Disabled Color of button border
fancy:fb_radiussetRadius(int)Radius of the button
fancy:fb_radius(TopLeft, TopRight,BottomLeft,BottomRight)setRadius(int[] radius)Custom Radius for each button corner
fancy:fb_iconPaddingLeftsetIconPadding(int,int,int,int)Icon Padding
fancy:fb_iconPaddingRightsetIconPadding(int,int,int,int)Icon Padding
fancy:fb_iconPaddingTopsetIconPadding(int,int,int,int)Icon Padding
fancy:fb_iconPaddingBottomsetIconPadding(int,int,int,int)Icon Padding
fancy:fb_ghostsetGhost(boolean)Ghost (Hollow)
fancy:fb_useSystemFontsetUsingSystemFont(boolean)If enabled, the button title will ignore its custom font and use the default system font

Also you can use Attributes with default prefix (android:) which makes migrating of your project more fast. Default Attributes have more priority than Attributes with prefix fancy.

Supported default Attributes
XML Attribute
android:enabled
android:text
android:textSize
android:textAllCaps
android:fontFamily
Supported Getters

| Function | Description | | ------------- |:-------------:| -----:| | getText() | Returns Text Value of the button| | getTextViewObject() | Returns TextView Object| | getIconFontObject() | Returns icon defined by fb_fontIconResource| | getIconImageObject() | Returns icon defined by fb_iconResource |

Sample

1 - Spotify Button

FancyButton Spotify

<mehdi.sakout.fancybuttons.FancyButton
	android:id="@+id/btn_spotify"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:paddingBottom="10dp"
	android:paddingLeft="20dp"
	android:paddingRight="20dp"
	android:paddingTop="10dp"
	fancy:fb_borderColor="#FFFFFF"
	fancy:fb_borderWidth="1dp"
	fancy:fb_defaultColor="#7ab800"
	fancy:fb_focusColor="#9bd823"
	fancy:fb_fontIconResource="&#xf04b;"
	fancy:fb_iconPosition="left"
	fancy:fb_radius="30dp"
	fancy:fb_text="SHUFFLE PLAY"
	fancy:fb_textColor="#FFFFFF" />

2 - Facebook Button

FancyButton Facebook

FancyButton facebookLoginBtn = new FancyButton(this);
facebookLoginBtn.setText("Login with Facebook");
facebookLoginBtn.setBackgroundColor(Color.parseColor("#3b5998"));
facebookLoginBtn.setFocusBackgroundColor(Color.parseColor("#5474b8"));
facebookLoginBtn.setTextSize(17);
facebookLoginBtn.setRadius(5);
facebookLoginBtn.setIconResource("\uf082");
facebookLoginBtn.setIconPosition(FancyButton.POSITION_LEFT);
facebookLoginBtn.setFontIconSize(30);

See the example project for more samples

Bonus

Fancybuttons is delivered with :


FancyButtons AndroidFancyButtons AndroidFancyButtons Android

FAQ

How to add new fonts ? Just Paste your font inside assets/fonts/ folder for Text fonts or inside assets/iconfonts/ for icon fonts eg : entypo OR for text fonts add it to res/font/ and use android:fontFamily or fancy:fb_textFontRes to use it.

Contributions

Fancybuttons needs you to build the missing features :

  • Supporting Circular buttons
  • Add elevation (Material Design)

Licence

MIT http://opensource.org/licenses/MIT

Developed By

El Mehdi Sakout

Follow @medyo80 on Twitter for the latest news.

For contact, shoot me an email at elmehdi.sakout@gmail.com

FAQs

Package last updated on 08 May 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc