Switch和TogglButton用法都差不多,他们都是继承与CompoundButton意思是复合按钮
Switch:
方法
//isChecked()是否被选中 //setOnCheckedChangeListener选择监听接口 //isChecked()是否被选中 //setButtonDrawable(int resid)设置Button的Drawable属性 //setChecked(boolean checked)设置是否选中 //toggle()改变当前的状态,true-->false ;false-->true
xml引用
<!--android:track="@drawable/switch_bg_normal 设置背景色 想要打开和关闭的背景不一样,做个选择器即可--> <!--android:thumb="@drawable/select_btn" 设置按钮的颜色--> <!--改变Switch的大小设置layout_height和layout_width没用,要设置thumb的大小即圆形按钮的大小--> <!--带有样式的--> <Switch android:thumb="@drawable/select_btn" android:id="@+id/open" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="30dp" android:layout_marginTop="30dp" android:track="@drawable/select_bg"/> <!--默认的Switch--> <Switch android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="30dp" android:layout_marginTop="90dp"/>java中使用
Switch sw = (Switch) findViewById(R.id.open); //设置是打开的 //sw.setChecked(true); sw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked){ Log.d(TAG, "onCheckedChanged: 开"); }else { Log.d(TAG, "onCheckedChanged: 关"); } } });ToggleButton:
方法和上面差不多
xml使用
<!-- android:background="@drawable/toggl_bg" 可以做一个选择器,根据开关改变背景--> <ToggleButton android:layout_marginRight="30dp" android:layout_marginTop="150dp" android:layout_alignParentRight="true" android:background="@drawable/toggl_bg" android:textOff="关" android:textOn="开" android:id="@+id/toggl" android:layout_width="50dp" android:layout_height="30dp"/> <!--默认的--> <ToggleButton android:layout_marginRight="30dp" android:layout_marginTop="200dp" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content"/>java
ToggleButton toggl = (ToggleButton) findViewById(R.id.toggl); toggl.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked){ Log.d(TAG, "onCheckedChanged: 开"); }else { Log.d(TAG, "onCheckedChanged: 关"); } } });最后效果图