首先上效果图
颜色切换就不提了,首先考虑两侧按钮的圆角,左侧应是左上、左下圆角,右侧反之,于是
左侧Shape文件中
<corners android:bottomLeftRadius="5dp" android:bottomRightRadius="0dp" android:topLeftRadius="5dp" android:topRightRadius="0dp" />
右侧Shape文件中
<corners android:bottomLeftRadius="0dp" android:bottomRightRadius="5dp" android:topLeftRadius="0dp" android:topRightRadius="5dp" />
当然这个角度可以选择自己顺眼的
然后考虑描边,左侧应为上下左描边,右侧应为上下右描边,当初是这样考虑的,虽然出来的效果并不好
先考虑如何实现吧,描边还可以指定哪条边吗? 可以这样去实现!
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:bottom="0dp" android:left="0dp" android:right="-1dp" android:top="0dp"> <shape> <!-- 描边颜色 --> <stroke android:width="1dp" android:color="#a6a6a6" /> <!-- 中间的背景色 --> <solid android:color="#FFFFFF" /> <!-- 直角设置四个角的角度 --> <corners android:bottomLeftRadius="5dp" android:bottomRightRadius="0dp" android:topLeftRadius="5dp" android:topRightRadius="0dp" /> </shape> </item> </layer-list>
使用layer-list ,虽说描边没有变化,但是我们可以选择把不需要的部分去掉
这样通过四个配置文件就可以实现这样的一个控件
这里只是提出了思路,有需要的话自己去实现。
有时间的话我可能会将其做成一个控件发到 github
那本篇文章到此结束,谢谢浏览。