4 votes

Interrupteur personnalisé dans Android avec texte dans la piste

J'ai un interrupteur personnalisé. Je veux que le texte (on/off) soit dans la piste et non dans le pouce.

Je pensais mettre un sélecteur avec du texte dans le drawable et le mettre comme piste de l'interrupteur. Mais je ne peux pas définir le texte dans une forme. Avez-vous une idée de la façon dont je peux le faire ?

Je veux également ajouter un peu de rembourrage à la piste, je ne veux pas que le pouce touche la piste. C'est un peu comme ça que je veux que ça se passe :

I want the switch to be kind of like this

C'est la forme de ma piste :

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:visible="true"
android:useLevel="false">
<corners
    android:radius="20dp" />
<size
    android:width="48dp"
    android:height="21dp" />
<stroke
    android:color="#bfbfbf"
    android:width="6dp"/>

3voto

Bhavnik Points 1214

Désactiver la capture d'écran

enter image description here

Capture d'écran d'allumage

enter image description here

Image d'allumage

enter image description here

Éteindre l'image

enter image description here

Image du pouce

enter image description here

interrupteur_on_off.xml

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

code xml

<android.support.v7.widget.SwitchCompat
    android:id="@+id/switch_compat"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="20dp"
    app:track="@drawable/switch_on_off"
    android:thumb="@drawable/on_switch_active"/>

Essayez le code ci-dessus et faites-moi savoir si vous trouvez une erreur.....

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X