//activity_main.xml

<LinearLayoutxmlns: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"tools:context="com.vincentlin.togglebutton.MainActivity"><!--textOn:truetextOff:false--><ToggleButtonandroid:id="@+id/toggleButton1"android:checked="false"android:textOn="@string/on"android:textOff="@string/off"android:layout_width="match_parent"android:layout_height="wrap_content"/><ImageViewandroid:id="@+id/p_w_picpathView1"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/off"/></LinearLayout>

//strings.xml

<?xmlversion="1.0"encoding="utf-8"?><resources><stringname="app_name">ToggleButton</string><stringname="hello_world">Helloworld!</string><stringname="action_settings">Settings</string><stringname="on">开</string><stringname="off">关</string></resources>

MainActivity.java

packagecom.vincentlin.togglebutton;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.widget.CompoundButton;importandroid.widget.CompoundButton.OnCheckedChangeListener;importandroid.widget.ImageButton;importandroid.widget.ImageView;importandroid.widget.ToggleButton;publicclassMainActivityextendsActivityimplementsOnCheckedChangeListener{privateToggleButtontButton;privateImageViewiView;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化组件tButton=(ToggleButton)findViewById(R.id.toggleButton1);iView=(ImageView)findViewById(R.id.p_w_picpathView1);/**给当前的tButton设置监听器*/tButton.setOnCheckedChangeListener(this);}@OverridepublicvoidonCheckedChanged(CompoundButtonbuttonView,booleanisChecked){/***当tButton被点击的时候,当前的方法会执行*buttonView---代表被点击控件的本身,*isChecked---代表被点击的控件的状态*当点击这个tButton的时候,更换img的背景*/iView.setBackgroundResource(isChecked?R.drawable.on:R.drawable.off);}}

//效果图

附件:http://down.51cto.com/data/2365305