你讨厌写selector背景了吗?手摸手教你封装个控件!
2016-11-13 本文已影响7951人
_deadline
前段时间项目里要写好几个按下去状态变化的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