您的位置:首页 > 其它

FancyButtons一个漂亮按钮的库

2016-12-25 22:24 232 查看
一个功能强大且全面的按钮控件,是目前我见过的最好使的按钮。支持给按钮添加图标,并且可通过属性设置手指按钮的效果,不需要在写<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_textsetText(String)按钮上文字
fancy:fb_textColorsetTextColor(int)按钮文字的颜色
fancy:fb_textSizesetTextSize(int)文字的大小
fancy:fb_textFontsetCustomTextFont(String)文字的字体
fancy:fb_textGravitysetTextGravity(Int)文字的对其方式
fancy:fb_iconResourcesetIconResource(Drawable)设置按钮上的图标,引用的是个图片
fancy:fb_iconPositionsetsetIconPosition(int)图标相对于文字的位置,有如下值 : Left, Right, Top, Bottom
fancy:fb_fontIconResourcesetIconResource(String)和fancy:fb_iconResource一样,也是设置按钮图标的,只是这里引用的是个图标的编码,如:""是下载图标,""是上传图标。实际的原理是将编码设置到TextView上了。
fancy:fb_fontIconSizesetFontIconSize(int)设置以fancy:fb_fontIconResource方式设置的图标的图标大小。
fancy:fb_iconFontsetCustomIconFont(String)设置以fancy:fb_fontIconResource方式设置的图标的图标字体
fancy:fb_borderWidthsetBorderWidth(int)边框的宽度
fancy:fb_borderColorsetBorderColor(int)边框的颜色
fancy:fb_defaultColorsetBackgroundColor(int)手指未触碰时的背景颜色
fancy:fb_focusColorsetFocusBackgroundColor(int)手指按下时的背景颜色
fancy:fb_radiussetRadius(int)设置按钮为圆角的,该属性用于设置圆角的半径
fancy:fb_iconPaddingLeftsetIconPadding(int,int,int,int)图标的左间距,一般用于设置图标与文字的距离
fancy:fb_iconPaddingRightsetIconPadding(int,int,int,int)图标的右间距
fancy:fb_iconPaddingTopsetIconPadding(int,int,int,int)图标的上间距
fancy:fb_iconPaddingBottomsetIconPadding(int,int,int,int)图标的下间距
fancy:fb_ghostsetGhost(boolean)是否为空洞效果,空洞效果时,按钮背景透明,触碰时只有边框会产生效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: