switch控件的使用

Android----UI控件switch选择开关使用

首先switch控件是原生的控件,可以直接使用。最低要求是安卓4.0以后才能使用。原生用法也很简单,直接在xml添加switch控件就行了.属性介绍:

android:textOff     setTextOff(CharSequence) 文本使用开关时未检查/“关闭”状态。

android:textOn setTextOn(CharSequence)   文本时使用的开关检查/“打开”状态。

setSwitchTypeface(Typeface tf, int style) 使用指定的字体类型库内的指定类型来设置状态标签上的文字;

 setSwitchTypeface(Typeface tf) 使用指定字体类型库内的固有类型来设置状态标签上的文字;

setChecked(boolean checked)   改变了这个按钮的开关状态

android:switchMinWidth setSwitchMinWidth(int) :

开关组件的最小宽度 必须是一个dimension值,这是一个浮点数等单位的附加“14.5 sp”。

android:thumb  指定switch控件滑动按钮的资源
android:track	指定switch控件滑动的滑槽的资源
先看下系统(6.0)的switch效果


 
现在自己定义一个switch控件:主要用到thumb属性和track属性就行了
<RelativeLayout
            android:layout_width="match_parent"
            android:clickable="true"
            android:layout_height="@dimen/_45dp"
            android:background="@drawable/white_gray_bg"
            android:gravity="center_vertical"
            >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:ellipsize="end"
                android:lines="1"
                android:gravity="center"
                android:paddingLeft="@dimen/_17dp"
                android:text="手势解锁"
                android:textColor="@color/font_gray_0"
                android:textSize="@dimen/_17sp"/>

            <Switch
                android:id="@+id/st_gesture"
                android:thumb="@drawable/switch_thumb"
                android:track="@drawable/switch_track"
                android:gravity="right|center_vertical"

                android:paddingRight="@dimen/_17dp"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>


        </RelativeLayout>
资源:android:thumb="@drawable/switch_thumb"滑块的资源,小球
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="oval">
    <size
        android:width="30dp"
        android:height="30dp">
    </size>
    <solid
        android:color="@android:color/white">
    </solid>
    <stroke
        android:width="1dp"
        android:color="#e5e5e5" />

</shape>
android:track="@drawable/switch_track"	滑槽的资源
滑槽的资源分switch开时的和关闭时的资源,所以是一个选择selector文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:state_checked="true"
        android:drawable="@drawable/switch_track_on"></item>
    <item
        android:state_checked="false"
        android:drawable="@drawable/switch_track_off"></item>
</selector>
switch_track_on打开
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">

    <solid
        android:color="#4cd964">
    </solid>

    <corners
        android:radius="32dp">
    </corners>

</shape>
switch_track_off关闭
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <solid
        android:color="@color/white">
    </solid>
    <stroke
        android:width="1dp"
        android:color="#e5e5e5" />
    <corners
        android:radius="28dp">
    </corners>
</shape>
效果图如下:


 更多不同的效果就需要更换不同滑块和滑槽资源文件就行了。
switch的监听:
mSwtich.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        
	if(isChecked){
	//选中的处理
	} 
	else{
	//没有选中的处理
	}

    }
});
最后,发现了一个别人一个好玩的switch控件:
funswitch









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值