FancyButtons一个漂亮按钮的库
一个功能强大且全面的按钮控件,是目前我见过的最好使的按钮。
支持给按钮添加图标,并且可通过属性设置手指按钮的效果,不需要在写<selector>文件。
项目地址:https://github.com/medyo/fancybuttons
如何添加到工程中:
导入控件源码
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.
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一个漂亮按钮的库的更多相关文章
- 分享一个漂亮按钮插件FancyButtons
一转眼,2018年的第10天就这样过去了.回看17年,曾经做了些啥都忘记了,就像每一天写日志时的样子(双手放在键盘上,怒着嘴,抬着头,望着天花板), 然后突然记得好像好久没有写随笔了(@_@).自从配 ...
- 一个漂亮的JavaScript“警告”替代品
下载 一个漂亮的JavaScript"警告"替代品 安装 $ npm安装-节省sweetalert 使用 从"sweetalert"进口swal; 横波测井(& ...
- PS网页设计教程XXIV——从头设计一个漂亮的网站
作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,“熟读唐诗三百首,不会作诗也会吟”. 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试 ...
- Android 加入一个动作按钮
在XML中声明一个动作按钮 所有的动作按钮和其他的可以利用的items都定义在menu资源文件夹中的XML文件中.为了增加一个动作按钮到工具栏,需要在工程 /res/menu/ 目录下面创建一个新的X ...
- 一个漂亮而强大的自定义view
代码地址如下:http://www.demodashi.com/demo/13502.html 简介 主要提供一个漂亮而强大的自定义SeekBar,进度变化由提示牌 (sign)展示,具有强大的属性设 ...
- 一个漂亮而强大的RecyclerView
代码地址如下:http://www.demodashi.com/demo/13470.html 简介 主要提供了简单易用强大的RecyclerView库,包括自定义刷新加载效果.极简通用的万能适配器A ...
- 再见HTML ! 用纯Python就能写一个漂亮的网页
我们在写一个网站或者一个网页界面的时候,需要学习很多东西,对小白来说很困难!比如我要做一个简单的网页交互: 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在 ...
- 如何持续集成/交付一个开源.NET函数库到Nuget.org
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:这是一个简单的入门向导,涉及到GitHub.AppVeyor和Nuget.org. 最 ...
- Javascript的一个生产PDF的库: unicode和中文问题的解决
Javascript的一个生产PDF的库: unicode和中文问题的解决基于canvas和jspdf库, 实现用javascript的支持中文pdf生成实用工具.参考:http://javascri ...
随机推荐
- POJ 1325 Machine Schedule(最小点覆盖)
http://poj.org/problem?id=1325 题意: 两种机器A和B.机器A具有n种工作模式,称为mode_0,mode_1,...,mode_n-1,同样机器B有m种工作模式mode ...
- 【Nature 子刊】I型HLA基因中和癌症相关的体细胞突变--转载
肿瘤的发生与免疫系统的功能密切相关.在免疫系统中,MHC(主要组织相容性复体,majorhistocompatibilitycomplex)是所有生物相容复合体抗原的一种统称.HLA(humanleu ...
- php--------网页开发实现微信JS的(定位,地图显示,照片选择功能)
今天说说微信网页开发中一下JS的功能,分享一下,希望对各位有所帮助. 前提:要有公众号,和通过微信认证,绑定域名,得到相应信息,appid,appsecret等. 微信开发文档:https://mp. ...
- 前端jsp页面script引入url项目名使用${appName}
<script src="/${appName}/commons/jslib/CommonValue.js"></script> 新建一个com.autum ...
- Gitea docker-compose.yaml
docker-compose.yaml version: "2" networks: gitea: external: false services: server: image: ...
- Java线程状态分析
Java线程的生命周期中,存在几种状态.在Thread类里有一个枚举类型State,定义了线程的几种状态,分别有: NEW: 线程创建之后,但是还没有启动(not yet started).这时候它的 ...
- voj 1406 floyd
传说,上古时期的某个七月七日,王母娘娘为了阻止牛郎织女的爱情,划一道玉钗拆散鸳鸯,使两人“星桥鹊驾,经年才见,想离情.别恨难穷.”于是,“执子之手,与子偕老”成了天下有情人共同的希翼. 在气宇轩昂.玉 ...
- RabbitMQ三种Exchange模式
RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储 RabbitMQ提供了四种Exchange:fanout,direct, ...
- Class.getResource()方法的使用
我们之前使用路径总是有点不知道怎么用,发现别人使用Class.getResource()方法,好像挺不错的样子.于是看看博客,简单学习下. 参考链接:http://blog.csdn.net/lcj8 ...
- 关于VC中LineDDA函数的调用
在项目里碰到这个函数,不知道怎么使用,记录在这里. 该函数的原型如下: BOOL LineDDA(int nXStart, int nYStart, int nXEnd, int nYEnd, LIN ...