本文共 1787 字,大约阅读时间需要 5 分钟。
Switch是Android的一个开关控件,但是该控件是4.0以后才有得,故而有些项目需要的时候不得不自己去实现该控件功能,网上主要流行的方法是继承View等控件自己在onDraw()里面绘制控件,但是不是效果不太理想就是体验性太差,另外也有修改官方Switch控件的,个人觉得修改官方Switch控件比较靠谱,比较体验性方面性能方面都有保证
activity_main.xml中的代码:
MainActivity.java中的代码:
package com.test.switchdemo;import android.app.Activity;import android.app.ActionBar;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.Switch;import android.widget.Toast;import android.os.Build;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Switch switch1 = (Switch) findViewById(R.id.switch1); switch1.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub if (buttonView.isChecked()) { Toast.makeText(MainActivity.this, "开始" + buttonView.getText().toString(), Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this, "关闭" + buttonView.getText().toString(), Toast.LENGTH_LONG).show(); } } }); }}
二、自定义Switch控件的开关效果
效果图:
activity_main.xml中的代码:
增加了两个属性thumb和track,解释如下: android:track:底部的图片 android:thumb:滑块的图片 drawable文件夹下面的thumb_selctor.xml中的代码:
drawable文件夹下面的track_selctor.xml中的代码:
MainActivity.java中的代码:同上