将Android自带的控件Switch设置成圆形选择按钮

最近看到网上的圆角SwitchButton心痒难耐,再加上Android Studio自带的switch实在是太难看了便试着做了一个。不是很好看,但是还是想发出来。

下面是我做完的效果

将Android自带的控件Switch设置成圆形选择按钮_第1张图片 这里写图片描述

对于Swich的设置主要有两个属性:

  • track:底色的样式,滑条的样式
  • thump:按钮的样式,也就是中间的小圆钮

先介绍track属性的作用:

先在drawable文件夹下新建Drawable Resource file文件

  • onetrack.xml——关闭时的样式
  • twotrack.xml——打开时的样式
  • track.xml——按钮样式的选择器

onetrack.xml代码——————按钮处于关闭状态时的底色样式




    
    
    
    
    
    


属性的介绍:

  • track–height:指这个底图的高,在这里设置width是没用的
  • radius:整个SwitchButton的弧度,不是其中小圆钮的弧度
  • gradient:变化率:从startColor的颜色到endColor的颜色。这里设置成一样,初始(按钮关闭)底色就是一个颜色。

twotrack.xml的代码——————按钮处于开启状态时的样式




    
    
    
    
    
    

属性和上面的一样,只是改变了颜色(gradient属性)而已

再写一个tracktoal.xml文件(选择器)——————实现Switch被点击时样式的改变



    
    

属性介绍:

  1. state_checked=“true” 是你选中了(打开Swith)的时候的状态
  2. 如果不写state_checked=“false” false这句可以不写,就是默认false状态了 是你未选中了(关闭Swith)的时候的状态
  3. drawable:提供样式

#再介绍thump属性的作用:
创建文件:

  1. onethump.xml ————按钮的样式

onethump.xml代码:




    
    
    
    


    
    

    


###属性介绍:

  • gradient,与track中的其实是一样的
  • stroke:给这个小圆钮带一个实线
  • width,height,这两个属性大小一样,是一个正方形,加上radius的180才是一个圆形。这里的height要和track一样高,这样小圆钮在才能呈现一个圆形出来

Layout文件

activity_main.xml文件代码

  

属性介绍:

  • android:textOn=""//打开时按钮的文字设置为""
  • android:textOff="" //关闭时按钮的文字设置为""
  • android:switchMinWidth=“25dp”//设置整个switch的宽度 只有在这里设置宽度才能将整个Switch的宽度进行设定
  • android:track="@drawable/tracktoal" //不能在background 中设置tracktotal 不然会让switch按钮的文字有底色 (曾经的大坑!!)

你可能感兴趣的:(Android)