老规矩,先放上一张图,对比一下安卓原生实现的Switch按钮和仿IOS实现的区别:
Switch效果对比
下面主要讲讲仿IOS Switch控件的实现,其实安卓Switch控件中提供了两个属性让我们去自定义控件的样式,分别是android:thumb=""和android:track="",要像实现IOS那样的效果,定义这两个属性即可,下面贴出代码:
android:id="@+id/all_day_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/border_space_nineteen"
android:thumb="@drawable/thumb"
android:track="@drawable/track"/>
下面是对应的xml文件:
① thumb.xml:
② track.xml:
③ blue_thumb.xml:
android:endColor="#eeeeee"
android:startColor="#eeeeee" />
android:color="#388cff"/>
④ blue_track.xml:
android:endColor="#388cff"
android:startColor="#388cff" />
⑤ gray_thumb.xml:
android:endColor="#eeeeee"
android:startColor="#eeeeee" />
android:color="#bbbbbb"/>
⑥ gray_track.xml:
android:endColor="#FFFFFF"
android:startColor="#FFFFFF" />
android:color="#bbbbbb"/>
原理就是,首先定义四个shape标签文件,分别对应控件选中和未选中状态下中间那个圆和背景;然后在selector标签中将这四个标签合理的设置为选中和未选中的状态;最后将两个selector文件设置到控件的android:thumb=""和android:track=""属性中,用法和原生switch是一样的。
总结:日常记录一些小功能,有备无患。