tchOnBkg.getWidth() / 2)) {
? ? isSwitchOn = true;
? ?} else {
? ? isSwitchOn = false;
? ?}
? ?
? ?//调用接口回调方法,将开关状态通知给监听对象
? ?if(previousState != isSwitchOn){
? ? if(onSwitchListenerList.size() > 0){
? ? ?for(OnSwitchListener listener : onSwitchListenerList){
? ? ? listener.onSwitched(isSwitchOn);
? ? ?}
? ? }
? ?}
? ?break;
? default:
? ?break;
? }
? this.invalidate();
? return true;
?}
}
我们再来看看开关状态监听接口代码,如下:
package com.bear.swtichbuttondemo;
public interface OnSwitchListener {
?
?public abstract void onSwitched(boolean isSwitchOn);
?
}
最后是我们的Activity中的代码,这里需要传两张图片给自定义组件,当然你也可以传两张自己做好的图片,代码如下:
package com.bear.swtichbuttondemo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
?private MySwitchButton mySwitchButton;
?private Button myBtn;
?@Override
?protected void onCreate(Bundle savedInstanceState) {
? super.onCreate(savedInstanceState);
? setContentView(R.layout.activity_main);
? setupViews();
?}
?private void setupViews() {
? mySwitchButton = (MySwitchButton) findViewById(R.id.my_switch_button);
? //传图片给自定义组件
? mySwitchButton.setImageResource(R.drawable.switch_bkg_switch,
? ? R.drawable.switch_btn_slip);
? myBtn = (Button) findViewById(R.id.button);
?
? //设置开关状态监听
? mySwitchButton.setOnSwitchStateListener(new OnSwitchListener() {
? ?@Override
? ?public void onSwitched(boolean isSwitchOn) {
? ? if (isSwitchOn) {
? ? ?Toast.makeText(MainActivity.this, "开关开启",
? ? ? ?Toast.LENGTH_SHORT).show();
? ? } else {
? ? ?Toast.makeText(MainActivity.this, "开关关闭",
? ? ? ?Toast.LENGTH_SHORT).show();
? ? }
? ?}
? });
?
? myBtn.setOnClickListener(new OnClickListener() {
? ?
? ?@Override
? ?public void onClick(View v) {
? ? boolean isOn = mySwitchButton.getSwitchState();
? ? mySwitchButton.setSwitchState(!isOn);
? ?}
? });
?}
}
最后附上Android之实现滑动开关组件代码的下载地址:
------------------------------------------分割线------------------------------------------
具体下载目录在 /2014年资料/12月/15日/Android之实现滑动开关组件
------------------------------------------分割线------------------------------------------