Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
com.github.medyo:fancybuttons
Advanced tools
An Android library to easily create fancy buttons without the need of drawable files.
: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.
Icons, Borders, Radius ... for Android buttons
1.9.1
1.9.0
1.8.4
1.8.3
setEnabled(boolean)
is called1.8.2
1.8.1
1.8
1.7
1.6
implementation 'com.github.medyo:fancybuttons:1.9.1'
implementation "com.android.support:appcompat-v7:$support_lib_version"
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"/>
XML Attribute | Java Attribute | Description |
---|---|---|
fancy:fb_text | setText(String) | Text of the button |
fancy:fb_textColor | setTextColor(int) | Text Color of the button |
fancy:fb_textSize | setTextSize(int) | Size of the text |
fancy:fb_textFont | setCustomTextFont(String) | FontFamily of the text |
fancy:fb_textFontRes | setCustomTextFont(int) | FontFamily of the text using font resource. REQUIRES support library |
fancy:fb_textGravity | setTextGravity(Int) | Gravity of the text |
fancy:fb_iconResource | setIconResource(Drawable) | Drawable icon of the button |
fancy:fb_iconPosition | setIconPosition(int) | Position of the icon : Left, Right, Top, Bottom |
fancy:fb_fontIconResource | setIconResource(String) | font icon of the button |
fancy:fb_fontIconSize | setFontIconSize(int) | Size of the icon |
fancy:fb_iconFont | setCustomIconFont(String) | FontFamily of the icon |
fancy:fb_borderWidth | setBorderWidth(int) | Width of the border |
fancy:fb_borderColor | setBorderColor(int) | Color of the border |
fancy:fb_defaultColor | setBackgroundColor(int) | Background color of the button |
fancy:fb_focusColor | setFocusBackgroundColor(int) | Focus Color of button background |
fancy:fb_disabledColor | setDisableBackgroundColor(int) | Disabled Color of button background |
fancy:fb_disabledTextColor | setDisableTextColor(int) | Disabled Color of button text |
fancy:fb_disabledBorderColor | setDisableBorderColor(int) | Disabled Color of button border |
fancy:fb_radius | setRadius(int) | Radius of the button |
fancy:fb_radius(TopLeft, TopRight,BottomLeft,BottomRight) | setRadius(int[] radius) | Custom Radius for each button corner |
fancy:fb_iconPaddingLeft | setIconPadding(int,int,int,int) | Icon Padding |
fancy:fb_iconPaddingRight | setIconPadding(int,int,int,int) | Icon Padding |
fancy:fb_iconPaddingTop | setIconPadding(int,int,int,int) | Icon Padding |
fancy:fb_iconPaddingBottom | setIconPadding(int,int,int,int) | Icon Padding |
fancy:fb_ghost | setGhost(boolean) | Ghost (Hollow) |
fancy:fb_useSystemFont | setUsingSystemFont(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.
XML Attribute |
---|
android:enabled |
android:text |
android:textSize |
android:textAllCaps |
android:fontFamily |
| 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 |
1 - Spotify Button
<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=""
fancy:fb_iconPosition="left"
fancy:fb_radius="30dp"
fancy:fb_text="SHUFFLE PLAY"
fancy:fb_textColor="#FFFFFF" />
2 - Facebook Button
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
Fancybuttons is delivered with :
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.
Fancybuttons needs you to build the missing features :
MIT http://opensource.org/licenses/MIT
El Mehdi Sakout
Follow @medyo80 on Twitter for the latest news.
For contact, shoot me an email at elmehdi.sakout@gmail.com
FAQs
An Android library to easily create fancy buttons without the need of drawable files.
We found that com.github.medyo:fancybuttons demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
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.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.