加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 08:20:01 所属栏目:百科 来源:网络整理
导读:StateButton 项目地址: niniloveyou/StateButton 简介:再也不用根据不同状态写不同的 selector 了 中文版这里: https://raw.githubusercontent.com/niniloveyou/StateButton/master/README_CHINESE.md Do you hate to write a background for each button

StateButton

项目地址: niniloveyou/StateButton
简介:再也不用根据不同状态写不同的 selector 了
中文版这里: https://raw.githubusercontent.com/niniloveyou/StateButton/master/README_CHINESE.md

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

strokeDashWidthunableStrokeWidthpressedStrokeColornormalBackgroundColorunableBackgroundColorround
Attribute default value xml java
normalTextColor original text color setNormalTextColor(int color)
pressedTextColor setPressedTextColor(int color)
unableTextColor setUnableTextColor(int color)
0 setStrokeDash(int dashWidth,int dashGap)
strokeDashGap normalStrokeWidth setNormalStrokeWidth(int widht)
pressedStrokeWidth setPressedStrokeWidth(int widht)
setUnableStrokeWidth(int widht)
normalStrokeColor setNormalStrokeColor(int color)
setPressedStrokeColor(int color)
unableStrokeColor setUnableStrokeColor(int color)
setNormalBackgroundColor(int color)
pressedBackgroundColor setPressedBackgroundColor(int color)
setUnableBackgroundColor(int color)
radius setRadius(int radius) / setRadius(float[] radii)
false setRound(boolean round)
animationDuration 0ms setAnimationDuration(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)

  • Definexmlns: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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读