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

支持给按钮添加图标,并且可通过属性设置手指按钮的效果,不需要在写<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) 是否为空洞效果,空洞效果时,按钮背景透明,触碰时只有边框会产生效果

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

  1. 分享一个漂亮按钮插件FancyButtons

    一转眼,2018年的第10天就这样过去了.回看17年,曾经做了些啥都忘记了,就像每一天写日志时的样子(双手放在键盘上,怒着嘴,抬着头,望着天花板), 然后突然记得好像好久没有写随笔了(@_@).自从配 ...

  2. 一个漂亮的JavaScript“警告”替代品

    下载 一个漂亮的JavaScript"警告"替代品 安装 $ npm安装-节省sweetalert 使用 从"sweetalert"进口swal; 横波测井(& ...

  3. PS网页设计教程XXIV——从头设计一个漂亮的网站

    作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,“熟读唐诗三百首,不会作诗也会吟”. 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试 ...

  4. Android 加入一个动作按钮

    在XML中声明一个动作按钮 所有的动作按钮和其他的可以利用的items都定义在menu资源文件夹中的XML文件中.为了增加一个动作按钮到工具栏,需要在工程 /res/menu/ 目录下面创建一个新的X ...

  5. 一个漂亮而强大的自定义view

    代码地址如下:http://www.demodashi.com/demo/13502.html 简介 主要提供一个漂亮而强大的自定义SeekBar,进度变化由提示牌 (sign)展示,具有强大的属性设 ...

  6. 一个漂亮而强大的RecyclerView

    代码地址如下:http://www.demodashi.com/demo/13470.html 简介 主要提供了简单易用强大的RecyclerView库,包括自定义刷新加载效果.极简通用的万能适配器A ...

  7. 再见HTML ! 用纯Python就能写一个漂亮的网页

    我们在写一个网站或者一个网页界面的时候,需要学习很多东西,对小白来说很困难!比如我要做一个简单的网页交互: 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在 ...

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

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:这是一个简单的入门向导,涉及到GitHub.AppVeyor和Nuget.org. 最 ...

  9. Javascript的一个生产PDF的库: unicode和中文问题的解决

    Javascript的一个生产PDF的库: unicode和中文问题的解决基于canvas和jspdf库, 实现用javascript的支持中文pdf生成实用工具.参考:http://javascri ...

随机推荐

  1. R语言包相关命令

    R的包(package)通常有两种:1 binary package:这种包属于即得即用型(ready-to-use),但是依赖与平台,即Win和Linux平台下不同.2 Source package ...

  2. django 常用字段类型

    <> CharField #字符串字段, 用于较短的字符串. #CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符数 ...

  3. 如何基于Netty处理粘包、拆包问题?

    涉及到相关重要组件: ByteToMessageDecoder MessageToMessageDecoder 这两个组件都实现了ChannelInboundHandler接口,这说明这两个组件都是用 ...

  4. SQL Server 跨服务器 不同数据库之间复制表的数据

    不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from 源数据库..表 当目标表不存在时: select * into 目的数据库 ...

  5. Xmind8 (update8)破解教程

    环境:Win7 一.下载xmind: Xmind版本:xmind-8-update8-windows.exe  百度云盘地址: https://pan.baidu.com/s/1ccd18E1hOY1 ...

  6. js使用post 方式打开新窗口,隐藏Url参数

    要想在地址栏隐藏url传递的参数,不能直接隐藏,但有几下几个变通的方法. 使用类似Base64编码,将URL参数进行简单加密. 使用框架页; 使用POST方式传递数据; 使用Cookie传递数据; 下 ...

  7. 联想A390T刷机ROOT教程

    一.联想A390T手动进入Recovery的方法: [步骤一]首先,将你的A390T手机关机,关机状态下,先按住电源键2秒,不要松开,再同时按下音量加.音量减两个键,此时,3个键一直按住不要放开,几秒 ...

  8. PostgreSQL查询长连接

    apple=# select pid, backend_start, xact_start, query_start, waiting, state, backend_xid from pg_stat ...

  9. I.MX6 Manufacturing Tool V2 (MFGTool2) Update Command List (UCL) User Guide translate

    Manufacturing Tool V2 (MFGTool2) Update Command List (UCL) User Guide Contents(目录) Contents(目录)     ...

  10. (转)类的sizeof

    来源:http://www.360doc.com/content/12/0315/17/3349869_194600377.shtml