实现灯泡开关主要是使用ToggleButton控件
在xml中设置ToggleButton控件,主要用到textOn和textOff的属性
(默认状态下check为false,当按下该按钮时为true,再次按下该按钮时为false,交替重复)
<ToggleButton
android:id="@+id/togbutton"
android:textOn="开"
android:textOff="关"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
然后设置一个默认状态下的(灯泡关闭状态下的图片)
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageview"
android:background="@drawable/off"/>
在主类中要有几个步骤
步骤一:对控件进行初始化
步骤二:设置监听事件
public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{
private ToggleButton toggleButton;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
toggleButton.setOnCheckedChangeListener(this);
}
protected void init() {
toggleButton= (ToggleButton) findViewById(R.id.togbutton);
imageView = (ImageView) findViewById(R.id.imageview);
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
/*当togbutton被点击时当前的方法会被执行
* buttonView代表被点击空间本身
* isChecked代表被点击控件状态
*/
imageView.setBackgroundResource(isChecked?R.drawable.on:R.drawable.off);
}
}