{"id":13639419,"url":"https://github.com/medyo/Fancybuttons","last_synced_at":"2025-04-19T22:32:37.788Z","repository":{"id":18409483,"uuid":"21591226","full_name":"medyo/Fancybuttons","owner":"medyo","description":"Icons, Borders, Radius ... for Android buttons","archived":false,"fork":false,"pushed_at":"2021-02-20T18:36:47.000Z","size":5492,"stargazers_count":1769,"open_issues_count":27,"forks_count":397,"subscribers_count":77,"default_branch":"master","last_synced_at":"2024-11-06T16:49:08.784Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/medyo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-08T00:00:48.000Z","updated_at":"2024-11-06T02:12:21.000Z","dependencies_parsed_at":"2022-09-02T06:44:37.324Z","dependency_job_id":null,"html_url":"https://github.com/medyo/Fancybuttons","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/medyo%2FFancybuttons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/medyo%2FFancybuttons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/medyo%2FFancybuttons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/medyo%2FFancybuttons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/medyo","download_url":"https://codeload.github.com/medyo/Fancybuttons/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223810397,"owners_count":17206757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T01:01:00.432Z","updated_at":"2024-11-09T09:30:59.150Z","avatar_url":"https://github.com/medyo.png","language":"Java","readme":":warning: This library was made years ago when it wasn't that easy to customize Android buttons like today.\nI highly recommend you to use [Material Design button](https://material.io/components/buttons/android) as it offers the same features \nand most importantly it's backed by the Android Team.\n____\n\n# Fancybuttons\nIcons, Borders, Radius ... for Android buttons\n[ ![jCenter](https://api.bintray.com/packages/medyo/maven/fancybuttons/images/download.svg) ](https://bintray.com/medyo/maven/fancybuttons/_latestVersion)  [![jitPack](https://jitpack.io/v/medyo/Fancybuttons.svg)](https://jitpack.io/#medyo/Fancybuttons)\n[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-FancyButtons-lightgrey.svg?style=flat)](http://android-arsenal.com/details/1/681)\n\n\u003cimg src=\"/resources/cover.png\" width=\"80%\" alt=\"Android About Page Cover\"/\u003e\n\n## Overview\n![FancyButtons Android](https://raw.github.com/medyo/fancybuttons/master/resources/no-drawables.png)\n\n### Demo Application : [Download APK](https://raw.github.com/medyo/fancybuttons/master/resources/fancybuttons_samples.apk)\n\n## Features\n\n* Border (stroke, radius, color)\n* Background (normal, focus)\n* Icon (Drawable, font Icon)\n* Icon (Position, size)\n* Icon Size\n* Icon Padding\n\n### Changelog\n\n- 1.9.1\n    - Fix getting the font\n\n- 1.9.0\n    - Add support for font resources (For text font only)\n    - Increase min API level to 14\n    - Now you can use these to set text font (res/font/roboto_slab_bold.ttf):\n        android:fontFamily=\"@font/roboto_slab_bold\"\n        fancy:fb_textFontRes=\"@font/roboto_slab_bold\"\n    - Add dependency on support library used only when using font resources.\n\n- 1.8.4\n    - Fix Text Gravity\n    - Add Ability to define custom radius value for each corner\n\n- 1.8.3\n    - Fixed long searching of font\n    - Added ability to use android:text, android:textSize, android:testAllCaps attributes\n    - Fixed preview issues with android:* attrs\n    - Added opportunity to use android:* attrs in styles\n    - Added ability to use custom LayoutParams instead of the default one\n    - Force refreshing the view when `setEnabled(boolean)` is called\n    - Minor optimization \u0026 refactoring\n\n- 1.8.2\n    - Added ability to disable button\n    - Added ability to use system font\n\n- 1.8.1\n    - Fix Bug related to loading custom fonts\n\n- 1.8\n    - Add setIconResource(Drawable)\n    - Cache fonts\n\n- 1.7\n    - Fix ripple effect when background is transparent\n    - Add capitalization of text\n\n- 1.6\n    - Add ripple effect\n    - Upgrade Font Awesome to 4.5.0\n\n### Installation\n\n\timplementation 'com.github.medyo:fancybuttons:1.9.1'\n\n### To use font resources add support library to your dependencies:\n\n\timplementation \"com.android.support:appcompat-v7:$support_lib_version\"\n\n### Usage\n\n1 - Include FancyButtons namespace to the root element :\n\n\txmlns:fancy=\"http://schemas.android.com/apk/res-auto\"\n\n2 - Add the FancyButton View with custom params :\n\n\t\u003cmehdi.sakout.fancybuttons.FancyButton\n\tandroid:id=\"@+id/btn_preview\"\n\tandroid:layout_width=\"wrap_content\"\n\tandroid:layout_height=\"wrap_content\"/\u003e\n\n####  Supported Attributes\n\n| XML Attribute        | Java Attribute           | Description  |\n| ------------- |:-------------:| -----:|\n| fancy:fb_text      | setText(String)     | Text of the button |\n| fancy:fb_textColor     | setTextColor(int)      |  Text Color of the button |\n| fancy:fb_textSize | setTextSize(int)      |    Size of the text |\n| fancy:fb_textFont | setCustomTextFont(String)      |    FontFamily of the text|\n| fancy:fb_textFontRes | setCustomTextFont(int)      |    FontFamily of the text using font resource. REQUIRES support library|\n| fancy:fb_textGravity | setTextGravity(Int)      |    Gravity of the text|\n| fancy:fb_iconResource | setIconResource(Drawable)      |    Drawable icon of the button|\n| fancy:fb_iconPosition | setIconPosition(int)      |    Position of the icon : Left, Right, Top, Bottom|\n| fancy:fb_fontIconResource | setIconResource(String)      |    font icon of the button|\n| fancy:fb_fontIconSize | setFontIconSize(int)      |    Size of the icon |\n| fancy:fb_iconFont | setCustomIconFont(String)      |    FontFamily of the icon|\n| fancy:fb_borderWidth | setBorderWidth(int)      |    Width of the border|\n| fancy:fb_borderColor | setBorderColor(int)      |    Color of the border|\n| fancy:fb_defaultColor | setBackgroundColor(int)      |    Background color of the button|\n| fancy:fb_focusColor | setFocusBackgroundColor(int)      |    Focus Color of button background|\n| fancy:fb_disabledColor | setDisableBackgroundColor(int)      |    Disabled Color of button background|\n| fancy:fb_disabledTextColor | setDisableTextColor(int)      |    Disabled Color of button text|\n| fancy:fb_disabledBorderColor | setDisableBorderColor(int)      |    Disabled Color of button border|\n| fancy:fb_radius | setRadius(int)      |    Radius of the button|\n| fancy:fb_radius(TopLeft, TopRight,BottomLeft,BottomRight) | setRadius(int[] radius)      |    Custom Radius for each button corner|\n| fancy:fb_iconPaddingLeft | setIconPadding(int,int,int,int)      |    Icon Padding|\n| fancy:fb_iconPaddingRight | setIconPadding(int,int,int,int)      |    Icon Padding|\n| fancy:fb_iconPaddingTop | setIconPadding(int,int,int,int)      |    Icon Padding|\n| fancy:fb_iconPaddingBottom | setIconPadding(int,int,int,int)      |    Icon Padding|\n| fancy:fb_ghost | setGhost(boolean)      |    Ghost (Hollow)|\n| fancy:fb_useSystemFont | setUsingSystemFont(boolean) | If enabled, the button title will ignore its custom font and use the default system font |\n\nAlso you can use Attributes with default prefix (android:) which makes migrating of your project more fast.\nDefault Attributes have more priority than Attributes with prefix fancy.\n\n#### Supported default Attributes\n| XML Attribute    |\n| ------------- |\n| android:enabled |\n| android:text |\n| android:textSize |\n| android:textAllCaps |\n| android:fontFamily |\n\n#### Supported Getters\n| Function        | Description  |\n| ------------- |:-------------:| -----:|\n| getText() | Returns Text Value of the button|\n| getTextViewObject() | Returns TextView Object|\n| getIconFontObject() | Returns icon defined by fb_fontIconResource|\n| getIconImageObject() | Returns icon defined by fb_iconResource |\n\n#### Sample\n\n**1 - Spotify Button**\n\n![FancyButton Spotify](https://raw.github.com/medyo/fancybuttons/master/resources/spotify-button.png)\n\n\t\u003cmehdi.sakout.fancybuttons.FancyButton\n\t\tandroid:id=\"@+id/btn_spotify\"\n\t\tandroid:layout_width=\"wrap_content\"\n\t\tandroid:layout_height=\"wrap_content\"\n\t\tandroid:paddingBottom=\"10dp\"\n\t\tandroid:paddingLeft=\"20dp\"\n\t\tandroid:paddingRight=\"20dp\"\n\t\tandroid:paddingTop=\"10dp\"\n\t\tfancy:fb_borderColor=\"#FFFFFF\"\n\t\tfancy:fb_borderWidth=\"1dp\"\n\t\tfancy:fb_defaultColor=\"#7ab800\"\n\t\tfancy:fb_focusColor=\"#9bd823\"\n\t\tfancy:fb_fontIconResource=\"\u0026#xf04b;\"\n\t\tfancy:fb_iconPosition=\"left\"\n\t\tfancy:fb_radius=\"30dp\"\n\t\tfancy:fb_text=\"SHUFFLE PLAY\"\n\t\tfancy:fb_textColor=\"#FFFFFF\" /\u003e\n\n**2 - Facebook Button**\n\n![FancyButton Facebook](https://raw.github.com/medyo/fancybuttons/master/resources/facebook-button.png)\n\n\tFancyButton facebookLoginBtn = new FancyButton(this);\n    facebookLoginBtn.setText(\"Login with Facebook\");\n    facebookLoginBtn.setBackgroundColor(Color.parseColor(\"#3b5998\"));\n    facebookLoginBtn.setFocusBackgroundColor(Color.parseColor(\"#5474b8\"));\n    facebookLoginBtn.setTextSize(17);\n    facebookLoginBtn.setRadius(5);\n    facebookLoginBtn.setIconResource(\"\\uf082\");\n    facebookLoginBtn.setIconPosition(FancyButton.POSITION_LEFT);\n    facebookLoginBtn.setFontIconSize(30);\n\nSee the [example project](https://github.com/medyo/fancybuttons/tree/master/samples/src/main/java/mehdi/sakout/fancybuttons/samples) for more samples\n\n### Bonus\n\nFancybuttons is delivered with :\n\n* 1 font : **RobotoRegular**\n* 1 icon Font : **FontAwesome** ( cheatsheet http://fortawesome.github.io/Font-Awesome/cheatsheet/)\n\n- - - -\n\n![FancyButtons Android](/resources/fancy.png)![FancyButtons Android](/resources/fancy2.png)![FancyButtons Android](/resources/fancy3.png)\n\n### FAQ\n\n**How to add new fonts ?**\nJust Paste your font inside `assets/fonts/` folder for Text fonts or inside `assets/iconfonts/` for icon fonts eg : entypo\nOR for text fonts add it to res/font/ and use android:fontFamily or fancy:fb_textFontRes to use it.\n\n## Contributions\nFancybuttons needs you to build the missing features :\n* Supporting Circular buttons\n* Add elevation (Material Design)\n\n### Licence\n\nMIT\nhttp://opensource.org/licenses/MIT\n\n### Developed By\n\nEl Mehdi Sakout\n\nFollow [@medyo80](http://twitter.com/medyo80) on Twitter for the latest news.\n\nFor contact, shoot me an email at \u003celmehdi.sakout@gmail.com\u003e\n","funding_links":[],"categories":["按钮","Java","Uncategorized","etc"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmedyo%2FFancybuttons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmedyo%2FFancybuttons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmedyo%2FFancybuttons/lists"}