需要的布局文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size
android:width="20dp"
android:height="20dp">
</size>
<!-- 填充的颜色:这里设置滑动块为白色 -->
<solid android:color="#ffffff" />
<!--<solid android:color="@color/theme_color" />-->
****<!-- 边框的颜色 :因为需要显示一点点背景色,所以设置了一个透明边框 -->**
<stroke
android:width="2dp"
android:color="@android:color/transparent" />**
<!--<corners android:radius="2dip" />-->
<corners android:radius="2dip" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--<size-->
<!--android:width="60dp"-->
<!--android:height="35dp">-->
<!--</size>-->
<solid
android:color="@android:color/darker_gray">
</solid>
<corners android:radius="12dp" />
</sh
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#3087ea">
</solid>
<corners android:radius="12dp" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/track_on" android:state_checked="true"/>
<item android:drawable="@drawable/track_off" android:state_checked="false"/>
</selector>
Mainactivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
open_h = (Switch)findViewById(R.id.open_h);
open_s = (Switch)findViewById(R.id.open_s);
open_h.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
Toast.makeText(MainActivity.this,"1 开了",Toast.LENGTH_SHORT).show();
}else if (!isChecked){
Toast.makeText(MainActivity.this,"1 关闭",Toast.LENGTH_SHORT).show();
}
}
});
open_s.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
Toast.makeText(MainActivity.this,"2 开了",Toast.LENGTH_SHORT).show();
}else if (!isChecked){
Toast.makeText(MainActivity.this,"2 关闭",Toast.LENGTH_SHORT).show();
}
}
});
}
}
mainactivity.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Switch
android:id="@+id/open_h"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:layout_marginRight="20dp"
android:thumb="@drawable/thumb_selector"
android:track="@drawable/track_selector" />
<Switch
android:id="@+id/open_s"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:layout_marginRight="100dp"
android:thumb="@drawable/thumb_selector"
android:track="@drawable/track_selector" />
</RelativeLayout>