1. android.support.v7.widget.SwitchCompat
SwitchCompat
是早期switch的升级版,更美观还增加了滑动动画,兼容android5.0以下,使用这个控件需要在build.gradle
文件中增加官方提供的依赖包compile "com.android.support:appcompat-v7:25.1.1
下面是基本的实现方法:
<android.support.v7.widget.SwitchCompat
android:id="@+id/sc_receive_phone_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" />
像上面这样的写法它系统默认获取color.xml
文件的 <color name="colorAccent">#FF4081</color>
中的颜色,如果我们需要改变颜色和样式的话那就需要自定义属性了,思想自定义SwitchCompat也很简单!请继续往下看
#1.1 自定义SwitchCompat
假如我要把粉红色改成蓝色的话那就自定义style咯,在style.xml文件中增加style.
android提供了属性供我们自定义,是不是很贴心。
<style name="MySwitch" parent="Theme.AppCompat.Light">
<!--开启时的颜色-->
<item name="colorControlActivated">@color/colorPrimary</item>
<!--关闭时的颜色-->
<item name="colorSwitchThumbNormal">@color/divider_color</item>
<!--关闭时的轨迹颜色取30%的颜色-->
<item name="android:colorForeground">@color/divider_color</item>
</style>
在布局文件中给需要自定义控件中增加app:theme="@style/MySwitch"
自定义样式,
完整代码如下:
<android.support.v7.widget.SwitchCompat
android:id="@+id/sc_receive_phone_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:theme="@style/MySwitch" />
哈哈,自定义颜色完成了,进行一下其他的修改吧,
app:switchMinWidth="50dp"
自定义宽度
app:thumbTintMode="src_in"
去掉开关阴影
添加监听事件:
mSc.setOnCheckedChangeListener(
new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
isChecked = true;
} else {
isChecked = false;
}
}
});
上面是使用SwitchCompat常用到的属性,不常用到的属性像什么给这个按钮增加文字文字间距什么的我就不介绍了,android提供的SwitchCompat我觉得挺好看的,只需要根据项目的主题自定义一下颜色就够用了,SwitchCompat就总结到这里啦,
作者:Allyn_lin
链接:http://www.jianshu.com/p/3b5072aca4e4
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。