studio - android switch button



Toggle-Button-Custom-Look Android (3)

Ich habe versucht, den Toggle-Button-Look anzupassen, aber ohne Erfolg. So möchte ich aussehen:

Kann mir jemand ein Tutorial geben?

https://ffff65535.com


Erstelle toggle_selector.xml in res / drawbar

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/toggle_on" android:state_checked="true"/>
  <item android:drawable="@drawable/toggle_off" android:state_checked="false"/>
</selector>

Wende die Auswahl auf deine Umschalttaste an

<ToggleButton
            android:id="@+id/chkState"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/toggle_selector"
            android:textOff=""
            android:textOn=""/>

Hinweis: Um den Text zu entfernen, habe ich den folgenden Code verwendet

textOff=""
textOn=""

Erstellen Sie einen Selektor

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/btn_da" android:state_checked="true"/>
    <item android:drawable="@drawable/btn_nu"/>
</selector>

und verwende es als Hintergrund für deinen ToggleButton.


Ich weiß nicht, ob das die beste Lösung ist, aber es hat gut für mich funktioniert:

1.- Entscheiden Sie, wie groß die Umschalttaste sein soll. In meinem Fall Breite 56dp und Höhe 76dp.

2.- Erstellen Sie das Icon-Set 56px-76px für mdpi, 84px-113px hdpi, das gleiche für xhdpi und xxhdpi

3.- Verschieben Sie die Symbole in den entsprechenden ziehbaren Ordner. In meinem Fall 20 Symbole 5 in jedem Ordner namens ic_name1_on, ic_name1_off [...] ic_name5_off

4. Erstellen Sie die folgenden XML-Dateien in einem neuen Ordner mit dem Namen "drawable" (falls noch nicht vorhanden):

  • ic_name1_toggle.xml
  • ic_name1_toggle_bg.xml
  • ic_name2_toggle.xml
  • (...)
  • ic_name5_toggle_bg.xml

5.- In ic_name1_toggle.xml muss der Code sein:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_checked="false"
        android:drawable="@drawable/ic_name1_off" />
    <item
        android:state_checked="true"
        android:drawable="@drawable/ic_name1_on" />
</selector>

6.- In ic_name1_toggle_bg.xml muss der Code sein:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:id="@+android:id/background"
         android:drawable="@android:color/transparent" />
   <item android:id="@+android:id/toggle"
         android:drawable="@drawable/ic_name1_toggle" />
</layer-list>

7.- Schließlich in Ihrer layout.xml:

<ToggleButton
                android:id="@+id/toggleButton1"
                android:layout_width="56dp"
                android:layout_height="76dp"
                android:background="@android:color/transparent"
                android:button="@drawable/ic_name1_toggle_bg"
                android:textOff=""
                android:textOn="" />




togglebutton