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

前端之家收集整理的这篇文章主要介绍了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

strokeDashWidthnormalStrokeWidthunableStrokeWidthpressedStrokeColornormalBackgroundColorunableBackgroundColorround
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 Box-sizing: border-Box; padding: 6px 13px; word-wrap: break-word; border: 1px solid rgb(221,int dashGap)
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

原文链接:https://www.f2er.com/xml/294307.html

猜你在找的XML相关文章