1.什么是ToggleButton
ToggleButton有两种状态:选中和未选中状态
并且需要为不同的状态设置不同的显示文本
2.ToggleButton属性
android:checked="true"
android:textOff="关"
android:textOn="开"
使用ToggleButton实现开关效果
默认情况下ToggleButton的checked属性为false。
将两张图片放入drawable(-hdmi)目录下。
通过ToggleButton的setOnCheckedChangeListener()方法监听toggleButton的状态。
重写onCheckedChanged()方法。
如果toggleButton被点击了,显示白天和其对应的图片;如果toggleButton没有被点击,显示晚上和其对应的图片。
通过imageView.setBackgroundResource()方法设置图片的背景颜色。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ToggleButton android:textOn="白天" android:textOff="夜晚" android:id="@+id/toggleButton1" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ImageView android:id="@+id/imageView1" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/moon" /> </LinearLayout>
package com.example.togglebutton; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.ImageView; import android.widget.ToggleButton; public class MainActivity extends ActionBarActivity { private ToggleButton toggleButton; private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toggleButton = (ToggleButton) findViewById(R.id.toggleButton1); imageView = (ImageView) findViewById(R.id.imageView1); toggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) imageView.setBackgroundResource(R.drawable.sun); else imageView.setBackgroundResource(R.drawable.moon); } }); } }
实现的效果是通过点击toggleButton可以实现imageView在白天和夜晚之间的切换。
效果: