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 ...
随机推荐
- Android -- service 利用广播调用服务的方法
1. 实现原理,在Service里面注册一个广播接收者, 想要调用的时候app发送出广播, 后台的service里面的广播接收者接收到广播,并调用service里面的方法. 2. 示例代码 MainA ...
- c++ 容器排序
#include <algorithm> #include <functional> #include <array> #include <iostream& ...
- IE8 JSON is not defined
问题原因: 昨天遇到了一个问题.就是用ajax从后台查询数据时,返回信息无法显示,经过提示发现是IE控制台提示: JSON is not defined 错误. 而且这个问题在本人自己的电脑上是不存在 ...
- 手写DCGAN
//加上了注释,对pytorch又加深了理解import torch as t from torch import nn from torch.autograd import Variable fro ...
- C primer plus 5 读书笔记3
1.ASCII 码前31位控制字符(非打印字符)的表示方法:(1)使用ASCII码表示比如蜂鸣字符用7(十进制)表示:(2),使用特殊的符号序列,即转义序列.如 ‘\a’表示蜂鸣字符.(3),使用十六 ...
- Hadoop生态系统介绍
Hadoop生态系统Hadoop1.x 的各项目介绍1. HDFS2. MapReduce3. Hive4. Pig5. Mahout6. ZooKeeper7. HBase8. Sqoop9. Fl ...
- ubuntu16.04安装Nvidia显卡驱动、CUDA8.0和cudNN V6
Nvidia显卡驱动安装 在ubuntu搜索框输入 软件更新,打开 "软件和更新" 对话框,在 附加驱动里选择系统检测到的Nvidia驱动,应用更改,重启系统: 安装完成之后查看G ...
- imshow(K)和imshow(K,[]) 的区别
参考文献 imshow(K)直接显示K:imshow(K,[])显示K,并将K的最大值和最小值分别作为纯白(255)和纯黑(0),中间的K值映射为0到255之间的标准灰度值.
- c++ istringstream的用法
一.测试代码 istringstream 是将字符串变成字符串迭代器一样,将字符串流在依次拿出,比较好的是,它不会将空格作为流.这样就实现了字符串的空格切割. #include<iostream ...
- Vue2.0 less全局配置
前言 再一次vue2.0的开发中,遇到这样的一个问题,使用less与处理器,封装了一套关于项目的主题,但是使用的时候,main.js中引入后依然不能直接使用定义的@theme-bg等less定义的颜色 ...