StateButton再也不用根据不同状态写不同的 selector 了

StateButton

项目地址: niniloveyou/StateButton
简介:再也不用根据不同状态写不同的 selector 了

Do you hate to write a background for each button?

Do you hate to write a bunch of selector?

That's why I'm writing this view.

Here to download demo

https://raw.githubusercontent.com/niniloveyou/StateButton/master/demo.apk

Screenshot

Manually

Copy/merge the following files to corresponding folder/file:

  • deadline/stabutton/StateButton.java
  • res/values/attrs.xml

Customizable attributes

Attributedefault valuexmljava
normalTextColororiginal text colornormalTextColorsetNormalTextColor(int color)
pressedTextColororiginal text colorpressedTextColorsetPressedTextColor(int color)
unableTextColororiginal text colorunableTextColorsetUnableTextColor(int color)
strokeDashWidth0strokeDashWidthsetStrokeDash(int dashWidth, int dashGap)
strokeDashGap0strokeDashGapsetStrokeDash(int dashWidth, int dashGap)
normalStrokeWidth0normalStrokeWidthsetNormalStrokeWidth(int widht)
pressedStrokeWidth0pressedStrokeWidthsetPressedStrokeWidth(int widht)
unableStrokeWidth0unableStrokeWidthsetUnableStrokeWidth(int widht)
normalStrokeColor0normalStrokeColorsetNormalStrokeColor(int color)
pressedStrokeColor0pressedStrokeColorsetPressedStrokeColor(int color)
unableStrokeColor0unableStrokeColorsetUnableStrokeColor(int color)
normalBackgroundColor0normalBackgroundColorsetNormalBackgroundColor(int color)
pressedBackgroundColor0pressedBackgroundColorsetPressedBackgroundColor(int color)
unableBackgroundColor0unableBackgroundColorsetUnableBackgroundColor(int color)
radius0radiussetRadius(int radius) / setRadius(float[] radii)
roundfalseroundsetRound(boolean round)
animationDuration0msanimationDurationsetAnimationDuration(int duration)

Usage

If the default values of custom attribues did not meet your requirement, you can easily re-config that attributes. This is sample code that you can refer. you can also browse demo app for more details.

via xml (sample)

  • Define xmlns:app="http://schemas.android.com/apk/res-auto" on root of your xml file
<deadline.statebutton.StateButton
            android:id="@+id/stateButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="StateButton"

            app:radius="5dp"
            app:round="true"
            app:animationDuration="200"

            app:strokeDashGap="2dp"
            app:strokeDashWidth="5dp"
            app:normalStrokeWidth="2dp"
            app:pressedStrokeWidth="2dp"
            app:unableStrokeWidth="2dp"

            app:normalStrokeColor="@android:color/white"
            app:pressedStrokeColor="@android:color/white"
            app:unableStrokeColor="@android:color/white"

            app:normalTextColor="@android:color/white"
            app:pressedTextColor="@android:color/white"
            app:unableTextColor="@android:color/white"

            app:normalBackgroundColor="@color/colorPrimaryDark"
            app:pressedBackgroundColor="@color/colorPrimaryDark"
            app:unableBackgroundColor="@color/colorPrimaryDark"/>

Developed By

deadline

Blog : http://www.jianshu.com/users/25e80ace21b8/latest_articles

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值