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属性就行了
资源:android:thumb="@drawable/switch_thumb"滑块的资源,小球<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>
<?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文件switch_track_on打开<?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_off关闭<?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>
效果图如下:<?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的监听:最后,发现了一个别人一个好玩的switch控件:mSwtich.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ //选中的处理 } else{ //没有选中的处理 } } });
funswitch