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

支持给按钮添加图标,并且可通过属性设置手指按钮的效果,不需要在写<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. TC SRM 584 DIV2

    250pt: 水题set处理. 500pt: 题意: 给你一个图,每条边关联的两点为朋友,题目要求假设x的金钱为y,则他的左右的朋友当中的钱数z,取值为y - d <= z <= y + ...

  2. JAVA基础知识详解

    1. JVM是什么 JVM是Java Virtual Mechine的缩写.它是一种基于计算设备的规范,是一台虚拟机,即虚构的计算机. JVM屏蔽了具体操作系统平台的信息(显然,就像是我们在电脑上开了 ...

  3. thinkphp5的auth权限认证(转自thinkphp官方文档+自己总结)

    thinkphp5的auth权限认证(转自thinkphp官方文档+自己总结) 一.总结 一句话总结:相当于就是用其它thinkphp的扩展一样,都是引入扩展,配置扩展,然后使用 引入 配置 使用 基 ...

  4. 雷林鹏分享:Ruby 正则表达式

    Ruby 正则表达式 正则表达式是一种特殊序列的字符,它通过使用有专门语法的模式来匹配或查找其他字符串或字符串集合. 语法 正则表达式从字面上看是一种介于斜杠之间或介于跟在 %r 后的任意分隔符之间的 ...

  5. django使用bootstrap快速美化 admin后台

    使用django-admin-bootstrappe快速美化后台 两步: 1.pip install django-admin-bootstrapped  安装应用 2.在setting.py里面添加 ...

  6. git 使用和安装

    http://www.git-scm.com/download/ http://www.git-scm.com/download/win http://www.git-scm.com/download ...

  7. IOS UIApplication和AppDelegate 关系

    UIApplication.AppDelegate.委托等的关系?  什么是委托?为什么要有委托?委托在Iphone中的实现机制是怎样的? 一般来说,我们创建了一个Iphone项目,默认会有这个mai ...

  8. [转载]java中的标号:outer的作用

    转载自:http://blog.sina.com.cn/s/blog_6f8bd746010136yr.html 标号label 标号提供了一种简单的break语句所不能实现的控制循环的方法,当在循环 ...

  9. eclipse+PyDev遇到字符UTF-8的问题

    今天配置eclipse+PyDev,在配置的时候出现了问题,如下: python and jpython require at least version 2.1 and iron python 2. ...

  10. C# 实现网络时间同步功能

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...