android中有四类切换型开关,它们分别是CheckBox,RadioButton,Switch,
ToggleButton。查看开发文档,这四种类型的开关同继承于CompoundButton:
好吧,我们首先来看ToggleButton的使用。
ToggleButton实现
ToggleButton的使用十分简单,就相当于是普通控件的使用,只需要设置一下相关属性就可以了。下面我们用ToggleButton来模仿ios界面的选择开关:
效果图:
首先在drawable文件夹下新建一个状态切换文件:
toggle_btn
<?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/toggle_btn_checked"></item>
<item android:drawable="@drawable/toggle_btn_unchecked"></item>
</selector>
接着就是在main_activity中设置相关属性了:
<ToggleButton
android:id="@+id/toggle_bt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@android:color/transparent"
android:button="@drawable/toggle_btn"
android:checked="false"
android:text=""
android:textOff=""
android:textOn="" />
默认样式比较丑,所以在 android:background=”@android:color/transparent”设置背景为透明,然后android:button=”@drawable/toggle_btn”中加入自己比较喜欢的按钮形式。
接下来在MainActivity中设置checked监听并做出相关事件就可以了:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mToggleBt = (ToggleButton) findViewById(R.id.toggle_bt);
mToggleBt.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
Toast.makeText(getApplication(), "按钮打开", Toast.LENGTH_SHORT)
.show();
} else {
Toast.makeText(getApplication(), "按钮关闭", Toast.LENGTH_SHORT)
.show();
}
}
});
}
照此方式,我们也可以模仿各种开关按钮,只需要在toggle_btn.xml文件替换掉你想要的按钮样式就可以了。例如我们还可以模