如何在Android中更改Switch的高度和宽度

Sun*_*nny 8 android switch-statement

  1. 我想把开关放在120dp宽度和30dp高度上.
  2. 另外我想在拇指上没有文字,但是想要将拇指盖在总宽度的一半,所以我希望它是60dp.
  3. 此外,我希望拇指的高度可以从三个侧面看到背景开关的高度.

我不知道如何做#3和#1和#2,我尝试了下面的xml,但它不起作用:

 <Switch
         android:id="@+id/plug_switch"
         android:layout_width="120dip"
         android:layout_height="10dp"
         android:maxHeight="10dp"
         android:layout_below="@id/plug_graph_layout"
         android:layout_centerHorizontal="true"
         android:minWidth="100dp"
         android:thumb="@drawable/plugs_button"
         android:track="@drawable/btntoggle_selector"
         android:textOn=""
        android:textOff=""
         android:width="120dip" />
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我#1,#2和#3.

谢谢

Nam*_*mbi 19

添加此android:switchMinWidth="56dp"并尝试

<Switch
         android:id="@+id/plug_switch"
         android:layout_width="120dip"
         android:layout_height="10dp"
         android:maxHeight="10dp"
         android:thumbTextPadding="25dp"
         android:switchMinWidth="56dp"
         android:layout_below="@id/plug_graph_layout"
         android:layout_centerHorizontal="true"
         android:minWidth="100dp"
Run Code Online (Sandbox Code Playgroud)


Ast*_*hme 7

这里有一个小例子如何改变你的swicth宽度,我希望它会帮助一些人..

1)拇指使用你的颜色(color_thumb.xml)

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">


<size android:height="40dp"  />
<gradient android:height="40dp" android:startColor="#FF569BDA" android:endColor="#FF569BDA"/>
Run Code Online (Sandbox Code Playgroud)

2)轨道的灰色(gray_track.xml)

shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"
>

<size android:height="40dp"  />
<gradient android:height="40dp" android:startColor="#dadadada" android:endColor="#dadadada"/>
Run Code Online (Sandbox Code Playgroud)

3)拇指选择器(thumb.xml)

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/gray_track" />
<item android:state_pressed="true"  android:drawable="@drawable/color_thumb" />
<item android:state_checked="true"  android:drawable="@drawable/color_thumb" />
<item                               android:drawable="@drawable/gray_track" />
Run Code Online (Sandbox Code Playgroud)

4)轨道选择器(track.xml)

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"  android:drawable="@drawable/color_thumb" />
<item                               android:drawable="@drawable/gray_track" />
Run Code Online (Sandbox Code Playgroud)

最后在交换机中

使用

     android:switchMinWidth="56dp"
     android:thumb="@drawable/thumb"
    android:track="@drawable/track"
Run Code Online (Sandbox Code Playgroud)