Home

Awesome

XyzInfo

自定义Switch 和 Ruler控件(博客链接)

UI

Download Demo

1

###介绍

xSwitchxRuler
支持背景与滑块颜色自定义支持两种显示模式
支持颜色过渡动画支持上下两种刻度
支持自定义圆角弧度支持自定义指示器颜色大小
支持自定义宽高比支持自定义刻度之间像素数目(间距)
支持自定义滑块与背景大小比例支持自定义刻度线宽度
支持自定义图片(建议灰色)以及大小支持自定义刻度基本单位(最小刻度单位)
支持自定义滑动时间  支持自定义起止范围
支持自定义字体颜色大小
支持自定义最小滑动速率
支持自定义刻度与文字之间距离
支持边界回弹动画
支持Fling滑动
支持设置默认值
支持自定义设置回弹动画基本时间

xswitch使用

  因为使用ColorMatrix使灰色图片变成白色,所以icon需要为灰色图片
Gradle
   compile 'com.xyz.xswitch:xswitch:1.0.1'
属性介绍
属性介绍类型默认是否必须
xRadian圆角弧度dimension45
xASPECTRATIO宽高比float0.37f
xASPEERRATIO滑块与背景宽度比float0.56f
xIconWidth图片宽度dimension80
xIconHeight图片高度dimension80
xBackgroundFromColor背景起始颜色color0xff443c6f
xBackgroundToColor背景终止颜色color0xffff5a73
xSliderFromColor滑块起始颜色color0xffff5a73
xSliderToColor滑块终止颜色color0xff443c6f
xChangedTime滑块滑动时间int300
xLeftIcon左侧图片referencenull
xRightIcon右侧图片referencenull
代码

     XyzSwitch xSwitch =  (XyzSwitch) findViewById(R.id.xswitch);
     xSwitch.setOnXyzSwitchChangeListener(new XyzSwitch.XyzSwitchChange() {
            @Override
            public void changed(boolean isRight) {
                Toast.makeText(MainActivity.this,isRight?"男":"女",Toast.LENGTH_SHORT).show();
            }
        });
     
layout
      <com.xyz.xswitch.XyzSwitch
        android:id="@+id/xswitch"
        android:layout_width="200dp"
        android:layout_height="80dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="35dp"
        app:xIconHeight="40dp"
        app:xIconWidth="40dp"
        app:xLeftIcon="@mipmap/lady"
        app:xRadian="40dp"
        app:xChangedTime="100"
        app:xRightIcon="@mipmap/man" />

xRuler使用

Gradle
     compile 'com.xyz.xruler:xruler:1.0.4' 
属性介绍
属性介绍类型默认是否必须
rBorderWidth边框宽度(指针模式下为指针宽度)dimension8
rBorderColor边框颜色(指针模式下为指针颜色)colorColor.BLUE
rLineColor刻度线的颜色colorColor.WHITE
rTrigonSize边框模式下三角形大小dimension20
rPixel最小刻度像素大小integer15
rStep刻度最小单位integer1
rLineWidth刻度线宽度dimension2
rTextSize刻度文字大小dimension30
rTextColor刻度文字颜色colorColor.WHITE
rLineHeight刻度线高度dimension25
rLineToText刻度文字与刻度线距离dimension35
rBegin刻度尺范围开始值integer0
rEnd刻度尺范围结束值integer1000
rMinVelocity触发惯性滑动的最小速率integer500
rAnimTime回弹动画时间基准值integer300
rIndicateHeight指针高度差值(数值越大高度越小)dimension0
rIsRect是否是边框模式booleantrue
rIsTop刻度线是否在顶部booleantrue
代码
       /**
         * 设置选中的条目
         */
        ruler1.setOnSelectItem(new XyzRuler.SelectItem() {
            @Override
            public int setSelectItem() {
                return 60;
            }
        });
        /**
         * 监听拖动时值得变化
         */
        ruler1.setOnRulerValueChangeListener(new XyzRuler.RulerValue() {
            @Override
            public void value(int value) {
                tv1.setText("体重\n"+value+"\nkg");
            }
        });
layout
      <com.xyz.xruler.XyzRuler
            android:id="@+id/ruler1"
            android:layout_width="242dp"
            android:layout_height="56dp"
            app:rAnimTime="100"
            app:rBegin="40"
            app:rBorderColor="#acF1ff"
            app:rBorderWidth="5dp"
            app:rEnd="300"
            app:rLineHeight="10dp"
            app:rLineWidth="3dp"
            app:rTextSize="10dp"
            app:rTrigonSize="20dp" />
      

LICENSE 开源协议

Apache License Version 2.0