文档章节

你讨厌写selector背景了吗?手摸手教你封装个控件!

 起伏
发布于 2016/11/13 14:25
字数 414
阅读 508
收藏 31

前段时间项目里要写好几个按下去状态变化的button, 于是在drawable文件夹里写了一堆文件, 想想好烦啊, 也是浪费时间,搞了一堆文件,还要起名,真心烦!

一气之下, 一劳永逸, 写一个控件,各种属性代码xml配置或者代码设置。因此也就有了StateButton。

其实实现并不难,只是比较烦,一堆属性。 有兴趣的看看。

效果图:

image.png

stateButton.gif

有哪些功能:

 //设置圆角度
 app:radius="5dp"

//设置左右为半圆, 不用计算radius
 app:round="true"

//设置背景切换动画时长
 app:animationDuration="200"

//设置dash            
 app:strokeDashGap="2dp"

//设置dash width
 app:strokeDashWidth="5dp"

//设置正常显示的边框宽度
 app:normalStrokeWidth="2dp"

//设置按下时显示的边框宽度
 app:pressedStrokeWidth="2dp"

//设置不可用时(enable = false)显示的边框宽度
 app:unableStrokeWidth="2dp"

//设置正常显示的边框颜色           
 app:normalStrokeColor="@android:color/white"

//设置按下时显示的边框颜色
 app:pressedStrokeColor="@android:color/white"

//设置不可用时(enable = false)显示的边框颜色
 app:unableStrokeColor="@android:color/white"

 //设置正常显示的文字颜色
 app:normalTextColor="@android:color/white"

//设置按下状态显示的文字颜色
 app:pressedTextColor="@android:color/white"

//设置不可用时(enable = false)显示的文字颜色
 app:unableTextColor="@android:color/white"

//设置正常显示的背景颜色            
 app:normalBackgroundColor="@color/colorPrimaryDark"

//设置按下状态显示的背景颜色
 app:pressedBackgroundColor="@color/colorPrimaryDark"

//设置不可用时(enable = false)背景颜色
 app:unableBackgroundColor="@color/colorPrimaryDark"

https://github.com/niniloveyou/StateButton #####感觉还可以的star下谢谢!

201609272123578195.gif

###你不点个赞吗?

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 1
码字总数 414
作品 0
徐州
私信 提问
Android-UI控件

手摸手教你写 Slack 的 Loading 动画 四步实现: 画布旋转及线条变化动画(Canvas Rotate Line Change) 画布旋转动画(Canvas Rotate) 画布旋转圆圈变化动画(Canvas Rotate Circle Change...

掘金官方
01/12
0
0
商城购物车加减控件的简单封装

我们都知道,购物车是做商城项目必不可少的一个环节,购物车中的加减控件就是商城中的重中之重,最近项目中也用到了加减控件,但是使用起来样式不能随便更改,决定简单封装一下,以后用到的时...

sinat_36668731
2017/08/14
0
0
手摸手-100行代码实现一个功能完善的图片懒加载

本文相对比较初级,为了节约时间,请小神及其以上级别的同学直接忽略。 有同学可能会问:那么多第三方库,为什么要自己动手写呢。景科同学的想法很简单,因为本人目前还是一个前端小白,只有...

景科同学
01/22
0
0
手撸一个安装包制作工具(2) --界面库

OK,开始写代码. 界面 先放上要做成的最终界面 (仿NSIS的安装界面): 如果要做成这种固定模式的安装界面,其实很简单,资源里创建几个对话框(Dialog),每次下一步时切换对话框就可以了 这里为了灵...

codetask
2016/08/01
152
0
用模型取代字典的好处

//使用字典的坏处 //一般情况下,设置数据和取出数据都使用“字符串类型的key”,编写这些key时,编译器不会有任何友善提示,需要手敲 //dict[@"name"] = @"Jack"; //NSString *name = dict...

5vinsEnt
2016/04/18
21
0

没有更多内容

加载失败,请刷新页面

加载更多

[springBoot系列]--springBoot注解大全

一、注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加......

Jack088
9分钟前
0
0
tomcat编译超过64k大小的jsp文件报错原因

  今天遇到一个问题,首先是在tomcat中间件上跑的web项目,一个jsp文件,因为代码行数实在是太多了,更新了几个版本之后编译报错了,页面打开都是报500的错误,500的报错,知道http协议返回...

SEOwhywhy
31分钟前
2
0
flutter http 请求客户端

1、pubspec文件管理Flutter应用程序的assets(资源,如图片、package等)。 在pubspec.yaml中,通过网址“https://pub.dartlang.org/packages/http#-installing-tab-”确认版本号后,将http(0...

渣渣曦
31分钟前
0
0
Django基本命令及moduls举例

一、Django基本命令 1.创建项目 django-admin.py startproject mysite 创建后的项目结构:- mysite - mysite #对整个程序进行配置 - init #导入包专用- settings ...

枫叶云
46分钟前
7
0
zabbix安装

rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm 安装jdk rpm -ivh (自行在网上下载rpm包) 安装php并修改相应参数 yum -y install php56w php56w-gd php56w-mysqlnd php56w-bcmath......

muoushi
47分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部