FancyButtons一个漂亮按钮的库

 

一个功能强大且全面的按钮控件,是目前我见过的最好使的按钮。

支持给按钮添加图标,并且可通过属性设置手指按钮的效果,不需要在写<selector>文件。

项目地址:https://github.com/medyo/fancybuttons

如何添加到工程中:

  1. 导入控件源码

2.导入控件属性文件attrs.xml

01.<?xml version="1.0" encoding="utf-8"?>

02.<resources>

03.<declare-styleable name="FancyButtonsAttrs">

04.<attr name="fb_defaultColor" format="color"  />

05.<attr name="fb_text" format="string"  />

06.

07.<attr name="fb_textColor" format="color"  />

08.<attr name="fb_iconColor" format="color"  />

09.

10.<attr name="fb_textFont" format="string"  />

11.<attr name="fb_iconFont" format="string"  />

12.

13.<attr name="fb_textSize" format="dimension"  />

14.<attr name="fb_iconResource" format="integer"  />

15.<attr name="fb_fontIconResource" format="string"  />

16.<attr name="fb_fontIconSize" format="dimension"  />

17.<attr name="fb_iconPosition" format="enum">

18.<enum name="left" value="1" />

19.<enum name="right" value="2" />

20.<enum name="top" value="3" />

21.<enum name="bottom" value="4" />

22.</attr>

23.

24.<attr name="fb_textPosition" format="enum">

25.<enum name="left" value="1" />

26.<enum name="right" value="2" />

27.<enum name="top" value="3" />

28.<enum name="bottom" value="4" />

29.</attr>

30.

31.<attr name="fb_textGravity" format="enum">

32.<enum name="top" value="0x30" />

33.<enum name="bottom" value="0x50" />

34.<enum name="left" value="0x03" />

35.<enum name="right" value="0x05" />

36.<enum name="center_vertical" value="0x10" />

37.<enum name="fill_vertical" value="0x70" />

38.<enum name="center_horizontal" value="0x01" />

39.<enum name="fill_horizontal" value="0x07" />

40.<enum name="center" value="0x11" />

41.<enum name="fill" value="0x77" />

42.<enum name="clip_vertical" value="0x80" />

43.<enum name="clip_horizontal" value="0x08" />

44.<enum name="start" value="0x00800003" />

45.<enum name="end" value="0x00800005" />

46.</attr>

47.

48.<attr name="fb_iconPaddingLeft" format="dimension" />

49.<attr name="fb_iconPaddingRight" format="dimension" />

50.<attr name="fb_iconPaddingTop" format="dimension" />

51.<attr name="fb_iconPaddingBottom" format="dimension" />

52.

53.<attr name="fb_borderColor" format="color" />

54.<attr name="fb_borderWidth" format="dimension"/>

55.<attr name="fb_focusColor" format="color" />

56.<attr name="fb_radius" format="dimension" />

57.

58.<attr name="fb_ghost" format="boolean"></attr>

59.</declare-styleable>

60.

61.</resources>

属性很强大呀!

3.导入assets资源文件,包含俩个文件夹:fonts、iconfonts。

ok,接下来就可以使用控件了。

如何使用:

  1. 布局文件中添加命名空间,这是使用自定义控件必须要做的。

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

如下图:

2. 创建控件

01.<mehdi.sakout.fancybuttons.FancyButton android:layout_width="wrap_content" android:layout_height="wrap_content"

02.fancy:fb_text="Create an account"

03.fancy:fb_textColor="#FFFFFF"

04.fancy:fb_radius="30dp"

05.fancy:fb_defaultColor="#ff5f69"

06.fancy:fb_focusColor="#ff838b"

07.fancy:fb_borderWidth="1dp"

08.fancy:fb_borderColor="#FFFFFF"

09./>

完整的实例可以点击上面的"下载源码"按钮,那是我做的demo。

接下来介绍下他的强大属性。

属性:

XML布局文件中使用 Java代码中使用 描述
fancy:fb_text setText(String) 按钮上文字
fancy:fb_textColor setTextColor(int) 按钮文字的颜色
fancy:fb_textSize setTextSize(int) 文字的大小
fancy:fb_textFont setCustomTextFont(String) 文字的字体
fancy:fb_textGravity setTextGravity(Int) 文字的对其方式
fancy:fb_iconResource setIconResource(Drawable) 设置按钮上的图标,引用的是个图片
fancy:fb_iconPosition setsetIconPosition(int) 图标相对于文字的位置,有如下值 : Left, Right, Top, Bottom
fancy:fb_fontIconResource setIconResource(String) 和fancy:fb_iconResource一样,也是设置按钮图标的,只是这里引用的是个图标的编码,如:""是下载图标,""是上传图标。实际的原理是将编码设置到TextView上了。
fancy:fb_fontIconSize setFontIconSize(int) 设置以fancy:fb_fontIconResource方式设置的图标的图标大小。
fancy:fb_iconFont setCustomIconFont(String) 设置以fancy:fb_fontIconResource方式设置的图标的图标字体
fancy:fb_borderWidth setBorderWidth(int) 边框的宽度
fancy:fb_borderColor setBorderColor(int) 边框的颜色
fancy:fb_defaultColor setBackgroundColor(int) 手指未触碰时的背景颜色
fancy:fb_focusColor setFocusBackgroundColor(int) 手指按下时的背景颜色
fancy:fb_radius setRadius(int) 设置按钮为圆角的,该属性用于设置圆角的半径
fancy:fb_iconPaddingLeft setIconPadding(int,int,int,int) 图标的左间距,一般用于设置图标与文字的距离
fancy:fb_iconPaddingRight setIconPadding(int,int,int,int) 图标的右间距
fancy:fb_iconPaddingTop setIconPadding(int,int,int,int) 图标的上间距
fancy:fb_iconPaddingBottom setIconPadding(int,int,int,int) 图标的下间距
fancy:fb_ghost setGhost(boolean) 是否为空洞效果,空洞效果时,按钮背景透明,触碰时只有边框会产生效果
时间: 2025-01-08 19:23:50

FancyButtons一个漂亮按钮的库的相关文章

Android 加入一个动作按钮

在XML中声明一个动作按钮 所有的动作按钮和其他的可以利用的items都定义在menu资源文件夹中的XML文件中.为了增加一个动作按钮到工具栏,需要在工程 /res/menu/ 目录下面创建一个新的XML文件. 对每个需要添加的item增加一个<item>元素包含到工具栏中,例如 res/menu/main_activity_actions.xml <menu xmlns:android="http://schemas.android.com/apk/res/android&q

微信支付开发(APP)的各种坑,.net和iOS的各种陷阱,解决.net调用下单接口提示无权限,解决iOS跳转到微信支付页面中间只有一个确定按钮

直入主题之前,请容我吐槽一下微*的官方东西:ASDFQ%#$%$#$%^[email protected]#$%DSFQ#$%.......:吐槽玩了!大家心照就好. 要完成手机APP跳转到微信的APP进行微信支付,需要进行如下操作: 1.先去微信的开放平台(http://open.weixin.qq.com)进行开发者账号的注册. 2.新建一个APP应用,然后填写必填信息提交审核. 3.进入APP应用,在接口信息中,进行申请“获得微信支付能力”的功能,期间会提交相关的公司营业信息证明等. 通过

101在检索框中添加一个书签按钮(扩展知识:在检索框中添加一个范围条)

效果如下: ViewController.h 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UITableViewController<UISearchBarDelegate> 4 @property (strong, nonatomic) UISearchBar *searchBar; 5 @property (strong, nonatomic) NSMutableArray *mArrDataSourceO

如何持续集成/交付一个开源.NET函数库到Nuget.org

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:这是一个简单的入门向导,涉及到GitHub.AppVeyor和Nuget.org. 最近在开发钉钉相关东西,遂简单包装了一个钉钉SDK并开源(https://github.com/keyroads/DingtalkSDK),这就涉及到如何进行持续集成并自动发布Nuget包的问题.之前一直都是使用TFS或者VSTS来做CI,既然是一个托管在GitHub中的开源项目,就从大家常用的持续集成平台(A

C 封装一个简单二叉树基库

引文 今天分享一个喜欢佩服的伟人,应该算人类文明极大突破者.收藏过一张纸币类型如下 那我们继续科普一段关于他的简介 '高斯有些孤傲,但令人惊奇的是,他春风得意地度过了中产阶级的一生,而  没有遭受到冷酷现实的打击:这种打击常无情地加诸于每个脱离现实环境生活的  人.或许高斯讲求实效和追求完美的性格,有助于让他抓住生活中的简单现实.  高斯22岁获博士学位,25岁当选圣彼德堡科学院外籍院士,30岁任哥廷根大学数  学教授兼天文台台长.虽说高斯不喜欢浮华荣耀,但在他成名后的五十年间,这  些东西就像

一个简单的跨库事务问题

什么是数据结构? 数据结构是相互之间存在一种或多种特定关系的数据元素的集合. 还有一些概念(数据.数据元素.数据项.数据对象.数据类型...) 传统上,我们把数据结构分为逻辑结构和物理结构. 逻辑结构:是指数据对象中数据元素之间的相互关系,也是我们今后最需要关注和讨论的问题. 物理结构:是指数据的逻辑结构在计算机中的存储形式. 逻辑结构分为以下四种: 1.集合:集合结构中的数据元素除了同属于一个集合外,之间没有任何关系. 2.线性结构:元素之间一对一. 3.树形结构:一对多. 4.图形结构:多对

微信支付(APP)集成时碰到的问题(.net提示“无权限”、iOS跳转到微信支付页面中间只有一个“确定”按钮)

直入主题之前,请容我吐槽一下微*的官方东西:ASDFQ%#$%$#$%^[email protected]#$%DSFQ#$%.......:吐槽玩了!大家心照就好. 要完成手机APP跳转到微信的APP进行微信支付,需要进行如下操作: 1.先去微信的开放平台(http://open.weixin.qq.com)进行开发者账号的注册. 2.新建一个APP应用,然后填写必填信息提交审核. 3.进入APP应用,在接口信息中,进行申请“获得微信支付能力”的功能,期间会提交相关的公司营业信息证明等. 通过

【第十二篇】微信支付(APP)集成时碰到的问题(.net提示“无权限”、iOS跳转到微信支付页面中间只有一个“确定”按钮)(转)

直入主题之前,请容我吐槽一下微*的官方东西:ASDFQ%#$%$#$%^[email protected]#$%DSFQ#$%.......:吐槽玩了!大家心照就好. 要完成手机APP跳转到微信的APP进行微信支付,需要进行如下操作: 1.先去微信的开放平台(http://open.weixin.qq.com)进行开发者账号的注册. 2.新建一个APP应用,然后填写必填信息提交审核. 3.进入APP应用,在接口信息中,进行申请“获得微信支付能力”的功能,期间会提交相关的公司营业信息证明等. 通过

【ThinkingInC++】23、一个袖珍的C库

/** * 功能:一个袖珍的C库 * 时间:2014年8月17日08:05:26 * 作者:cutter_point */ //这个头文类似一个C的库 #ifndef CLIB_H_INCLUDED #define CLIB_H_INCLUDED typedef struct CStashTag { int size; //每个小空间的大小 int quantity; //用来表示要分配多少个字节,全部空间大小 int next; //已经存放了数据的字节个数 //首先,我们不知道要分配的类型大